Ionic2 + Meteor:获取新插入项目的_id

时间:2016-12-08 13:30:49

标签: mongodb meteor ionic-framework ionic2

我正在使用 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

1 个答案:

答案 0 :(得分:1)

错误发生在服务器端:

Items.collection.insert(...)

添加.collection后,它会返回新的_id - 字符串。