mongoose 如何 保存一组,是1组,而不是一个对象
发布于 12 年前 作者 455024780 14097 次浏览 最后一次编辑是 8 年前 来自 问答

这两天在想一个问题,因为mongdb批量插入数据的效率是非常高的,但是mongoose里能不能不要先全部遍历一次,存入到建好对象比如一个数组中,在用save保存呢,感觉多此一举啊。

var Schema =mongoose.Schema;
//创建一个类
var PilotSchema = new Schema({
    name:{type:String, index:true},
    groups:String
});

//把类映射到db中(a,b)a:db中的文档(表)名,b:类
db.model('Pilot',PilotSchema);
var Pilot=db.model('Pilot');
//构造函数,初始化类
function Pilots(JsonObj){
    this.name=JsonObj.name;
    this.groups=JsonObj.groups;
}

exports.pilotSave=function(pilots,callback){
   var newpilot=new Pilot();
    newpilot.name=pilots.name;       ------假如pilots是一组对象的话,我就得用循环放进newpilot了
    newpilot.groups=pilots.groups;
    newpilot.save(function(err){
        if(err){
            console.log(err);
            return callback(err);
        }
        callback(null);
    })
}

可不可以直接 var newpilot =pilots ? 这两天在mongoosejs.com的api文档中找,没找见,如果你知道请指导一下咯,或者有别的包告诉我一下也行

16 回复

为什么大家看了都不回复呢,是不是这个问题没有实际意义啊?

表示只会用 mongo-lite… 倒是楼主贴的代码格式全乱, 怪人不回复这说不过去吧… 而且论坛人气也不是很高

哈,我马上改一下格式

当我看见这个问题的时候,我几乎感觉您对mongoose有太多的不熟悉,虽然你尝试去找api,但是该框架的主要组成部分都不太了解,势必会导致你无法定位到你想要的结果。 例如你了解了Schema/Model/Document之间的区别后,就很容易发现你的示例代码中你想通过Dcoument来进行操作。对于Doc的操作当然是单对象操作咯,如果你想一次性操作多个,那么肯定是要找Documents或者DocumentArray对象咯。然后我们是可以找到DocumentArray的,也就找到了create方法,create方法告诉我们,里面的subDoc依然按照他原有的schema定义来构造。那么schema构造出的是什么呢?当然是model咯,因此我们就要去model里找create方法咯。model的create方法案例中不就清晰的写了2个操作数组的案例么?

//Model.create(doc, fn)
//Shortcut for creating a new Document that is automatically saved to the db if valid.
//show code
//Parameters:
//        doc <Array, Object...>
//        fn <Function> callback
Candy.create({ type: 'jelly bean' }, { type: 'snickers' }, function (err, jellybean, snickers) {
  if (err) // ...
});

var array = [{ type: 'jelly bean' }, { type: 'snickers' }];
Candy.create(array, function (err, jellybean, snickers) {
  if (err) // ...
});

我觉得是不是应该直接搞个代富文本工具放着算了,我最近写mk都觉得麻烦,用个可视化的工具多方便

var reply='精辟';

强烈收藏,a272121742,你说的很对,我最然有看api,但是整个了解不到2周时间话说文档太多了也不知道从何入手,非常感谢你的回复啊,这样我与多了些思路了。还有你是深夜给我留言的吗????非常感动哇,哈哈

@a272121742 不会啊, Markdown 已经很精简了. 你用 Markdown 来写什么, 一般的文本, 链接和代码应该很轻松才对?

@455024780 我是晚上12点后开始研究,白天1点起床,起床之后工作的人。你去看我写的一篇关于mongoose基础引导的文章http://club.cnodejs.net/topic/504b4924e2b84515770103dd。

@a272121742 你的文章已经删了… 哈,我关注你们的网站了,好牛叉的效果啊,不知道是什么惊喜呢

@jiyinyiyong 可是我按照mk写了之后,不同网站实现方式不一样,导致我写的一套复用不高,我倒是喜欢用可视化文本写完之后然后用类似word的工具进行格式化,所见所得,方便快捷。

@455024780 明白了,上面那个句号也被放到了url上了

@a272121742 呃是我太蠢了,没注意到超链接最后多了个句号,谢谢啊,拜读了 ^O^

@a272121742 标准分裂的确是问题, 我希望以后都统一成 GFM

回到顶部