2013-06-29 5 views
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() (явно выводит объект курсора).

ответ

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 } }); 
}); 

Вы бы обернуть все это в методе Метеор, чтобы воспользоваться компенсации латентности и обеспечить разрешение на запись с помощью вашего Collection.update.

Смежные вопросы