0

我对 mongodb 完全没有经验,所以我想问如何从流星集合中检索文档。我检查是否有用户的文档并用对象更新它

            if (Saves.find({_id: Meteor.userId()}).fetch()) {

                    console.log("Before " +Saves.find({_id: Meteor.userId()}).fetch())
                    if (Meteor.isServer){
                    Saves.update( {_id: Meteor.userId(), save: save} )
                    }
                    console.log("Success " + Saves.find({_id: Meteor.userId()}).fetch())

我想通过 获取那个“保存”对象console.log,但是现在它们都没有输出,或者[object Object]如果我不使用fetch()(显然输出光标对象)。

4

1 回答 1

0

如您所述, Collection.find() 返回一个cursor,而 Collection.find().fetch() 返回文档。

我不确定我是否完全理解您要做什么,但可能是这样的(未经测试):

var cursor = Saves.find({ _id : Meteor.userId() /* , save : { $not : true } */ });

cursor.forEach(function(item) {
    console.log(item);
    Saves.update({ _id : item._id }, { $set : { save : true } });
}); 

您可以将整个内容包装在 Meteor 方法中,以利用延迟补偿,并确保您的 Collection.update 具有写入权限。

于 2013-06-30T02:14:05.620 回答