【问题标题】:How to let the inserting to be synchronized, in mongoose? [duplicate]如何在猫鼬中让插入同步? [复制]
【发布时间】:2012-05-18 05:47:34
【问题描述】:

可能重复:
Node + Mongoose: Get last inserted ID?

我正在尝试通过 mongoose 将文档插入 mongodb:

var mongoose = require('mongoose');

mongoose.connect('mongo://localhost/shuzu_test');

var conn = mongoose.connection;

var user1;

conn.collection('users').insert({a: 111}, function(err, docs){
    console.log(docs);
    user1 = docs[0];
});

var question1;
conn.collection('questions').insert({
    t:'Hello', 
    userId: user1._id /*!!!! error: user1 is undefined */
}, function(err, docs){
    question1 = docs[0];
});

请注意这一行:

/*!!!! error: user1 is undefined */

当它尝试插入问题时,user1 仍然没有插入,它仍然是undefined。如何更改代码以使插入同步?所以我可以在插入问题之前确保user1 已经插入并且有价值?

【问题讨论】:

    标签: mongodb mongoose synchronous


    【解决方案1】:

    您需要将插入问题集合的代码放在从插入到用户集合的回调中。

    像这样:

    conn.collection('users').insert({a: 111}, function(err, docs){
        console.log(docs);
        user1 = docs[0];
    
        var question1;
        conn.collection('questions').insert({
            t:'Hello', 
            userId: user1._id /*!!!! error: user1 is undefined */
        }, function(err, docs){
            question1 = docs[0];
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-09
      • 2017-05-31
      • 2014-07-15
      • 2020-02-16
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 2020-11-09
      相关资源
      最近更新 更多