如何在MongoDB中获取插入文档的ID

时间:2014-03-20 17:11:25

标签: mongodb

我正在为mongo shell编写一个脚本来填充一些数据进行测试。

我有两个集合:clubteam,在团队的文档中,它有一个对俱乐部的objectId引用。

我所做的如下:

db.club.drop();
var club_1_id;
db.club.insert({name:'Club 1',
        venue:'Somewhere'},
    function(err, doc){
        club_1_id=doc._id;
});

db.team.drop();
var team_1_id;
db.team.insert({name:'Team 1', club:{id: club_1_id, name: 'Club 1'}}, 
    function(err, doc){
       team_1_id=doc._id;
});

我实际上并不感到惊讶,在团队文档中,俱乐部的ID被插入null,导致回叫功能可能无法及时调用。

所以在这种情况下如何设置ID正确?

2 个答案:

答案 0 :(得分:1)

您可以尝试以下方式:

db.club.drop();
var club_1_id = new ObjectId();
db.club.insert({_id:club_1_id, name:'Club 1',venue:'Somewhere'});

db.team.drop();
var team_1_id = new ObjectId();
db.team.insert({_id:team_1_id, name:'Team 1', club:{id: club_1_id, name: 'Club 1'}});

答案 1 :(得分:0)

var club_doc = {
           _id: ObjectId()
           name:'Club 1',
           venue:'Somewhere'
          } 

var id = club_doc._id;

db.club.insert(club_doc);



var team_doc = {
                 _id: ObjectId(),
                 name:'Team 1', 
                 club:{
                 id: id, 
                 name: 'Club 1'
                }
               }
var teamID = team_doc._id;
db.team.insert(team_doc);