我正在使用 Meteor 数据库进行 Ionic2 项目。当我将新项目插入数据库时,我需要获取新生成的_id
。但我不知道如何以正确的方式访问Observable
。
服务器:
newItem() {
if (!this.userId)
throw new Meteor.Error('unauthorized', 'User must be logged-in to insert an item');
return Items.insert({ ownerId: this.userId, title: 'New Item' });
}
客户端:
MeteorObservable.call('newItem').subscribe({
next: () => {
//get _id
},
error: (e: Error) => {
console.log("Error: " + e);
}
});
Items.insert
会返回包含插入的Observable<string>
的{{1}}。如何在客户端_id
内访问此_id
?
修改 我也在客户端试过这个:
next: ()
但是MeteorObservable.call('newItem').subscribe(
data => {
console.log(data);
},
error => {
console.log("Error: " + error);
}
);
是一个空对象data
。 :(
EDIT2: 我也在这里发布了它:https://forums.meteor.com/t/get--id-after-insert-from-returned-observable-on-client/32106
答案 0 :(得分:1)
错误发生在服务器端:
Items.collection.insert(...)
添加.collection
后,它会返回新的_id
- 字符串。