0

重複の可能性:
ノード + マングース: 最後に挿入された 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では、質問を挿入する前に、挿入され、価値があることを確認できますか?

4

1 に答える 1

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];
    });
});
于 2012-05-10T03:35:16.340 に答える