【发布时间】:2017-01-13 01:43:16
【问题描述】:
我想在 minimongo 中获取最后插入的项目。目前我正在这样做(客户端代码):
addBook()
{
BookCollection.insert(
this.book , ( err , insertedBook_id )=>
{
this.book_saved = true;
console.group('Output:')
console.log(err);
console.log( insertedBook_id );
console.log(
BookCollection.find({_id: insertedBook_id})
.fetch()
);
console.groupEnd();
//this.router.navigate(['/book', insertedBook_id]);
}
);
}
控制台输出:
undefined
t6Lwrv4od854tE7st
[]
如您所见,当我重定向到新创建的页面时,我找不到一本书,但在 mongo shell 中我清楚地看到该记录已添加。我应该等待像BookCollection.insert(this.book).then( . . . ) 这样的事件吗?请帮帮我!)
当我回到“所有书籍页面”时,我看到了新记录并且可以点击,一切正常,没有错误。
在 /book 控制器中:
ngOnInit()
{
this.sub = this.curr_route.params.subscribe(
params=>
{
this.book = BookCollection.findOne( params[ '_id' ] ); // .fetch() == []
//if(!this.book)
// this.router.navigate(['/books']);
Meteor.subscribe(
'book' , params[ '_id' ] , ()=>
{
this.book = BookCollection.findOne( params[ '_id' ] );
} , true
)
console.groupCollapsed( 'BookDetailsCardComponent log data:' )
console.group( 'Book:' );
console.log( this.book );
console.groupEnd();
console.groupEnd();
} , true
);
}
【问题讨论】:
-
如何在 /book 组件中加载文档?这是您看到错误的地方吗?
-
我没有看到任何错误...问题是插入后我找不到新记录...
标签: mongodb angular angular-meteor