Cross Reference两个系列

时间:2015-03-19 15:43:24

标签: mongodb meteor

我有两个集合A + B.两个集合都是在同一个事件中创建的。 B在A之前创建了一些行。现在我需要存储在A的_id中。如何获取刚刚创建的B的id? 我是meteor和mongoDB的新手,是_id内部传回来创建它已经可用(我没有找到这个的指示)或者我需要重读B?如果是这样,我该如何做到最好?

修改

我知道插入后_id会在服务器上传回。

客户端:

 Meteor.call('addB',b ); 

服务器:

'addB':function(b){
    return B.insert(b);
},

如何将B._id传递给客户端,以便我可以在客户端上执行以下操作:

a.id_of_B = B._id
Meteor.call('addA',a ); 

3 个答案:

答案 0 :(得分:2)

collection.insert返回已创建的_id字段的值。文档说"返回其唯一的_id。"。

答案 1 :(得分:0)

要将值返回给客户端,可以使用简单的回调:

此处再次指向文档collection.insert

的链接

客户端:

 Meteor.call('addB',b function(error, result) {
      BId = result;
 });

服务器:

'addB':function(b){
   return B.insert(b);
  },

答案 2 :(得分:0)

请记住,一般情况下,您不需要将Meteor.call()插入到集合中。您可以在客户端上执行两个插入(如果集合在那里可用),这些插入将自动同步回服务器。

var a = {...}; // some object
var b = {...}; // some other object


B.insert(b,function(err,id){ // asynchronous style
  a.idOfB = id;
  A.insert(a);
})

a.idOfB = B.insert(b); // synchronous style
A.insert(a);