2012-05-09 3 views
0

可能性の重複:
Node + Mongoose: Get last inserted ID?挿入を同期させる方法、マングースで?

私はマングースでの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が挿入され、質問を挿入する前に価値があることを確認できますか?

答えて

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]; 
    }); 
}); 
関連する問題