我有两个集合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 );
答案 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);