2015-10-15 31 views
0

在我的mongoDB中,我收集了一個名爲Questions的集合。每個問題都有一個日期,時間和顯示是真是假。現在,我想在滿足當前日期的情況下將問題更新爲Display:true。時間滿足集合值時的流星更新

我不知道如何更新集合而無需觸發事件,所以我假設它必須在服務器端工作。

現在這是在我的服務器端檢查它是否適用於秒(而不是全天),但它只更新了一個問題,而且我知道這不是正確的方法。

Meteor.startup(function() { 
    return Question.update({ 
     time: 40 
    },{ 
     $set: {display: true} 
}) 

爲了讓一些更加明確:真:

如果當前時間在收集問題,設置顯示的時間符合。

我希望有人能幫助我。

回答

1

如果您的目標只是根據時間顯示或不顯示文檔,那麼您實際上並不需要在指定的時間更改文檔。你可以使自己反應並基於此顯示。看看remcoder:chronos包。

例如,你可以做到這一點在你的查詢條件:

Template.myTemplate.helpers({ 
    myDocuments: function(){ 
    var now = Chronos.currentTime(); // updates every second by default 
    return MyCollection.find({ time: { $gt: now }}); 
    } 
}); 

這是不是改變文件本身乾淨多了。

0

您想使用Meteor.setTimeout

您的代碼應該是這個樣子:

Meteor.setTimeout(function() { 
    Meteor.update({ _id: someId }, { $set: { display: false } } 
}, 1000); // will run after 1000ms 

你可以選擇你要決定哪些文件(S)更新任何選擇。