[英]Mongodb: Dynamic query object in collection.find()
我正在開發Node.js + MongoDB應用程序。 該應用程序在MongoDB中插入一些記錄。 例如讓我們做下面的簡單記錄:
{
"name": "Sachin",
"age" : 11,
"class": 5,
"percentage": 78,
"rating": 5
}
現在,最終用戶可以設置滿足特定條件時要獲取通知/警報的不同規則。 例如,我們可以有一個類似的規則:
1)Rule1:如果“百分比”小於40,則生成通知/警報
為了實現這一點,我使用了復制和可尾游標。 因此,無論何時在集合中添加新記錄,我都會在可尾光標中獲取一條記錄。
coll = db.collection('oplog.rs');
options = {
tailable: true,
awaitdata: true,
numberOfRetries: -1
};
var qcond = {'o.data.percentage':{$gt:40}};
coll.find(qcond, options, function(err, cur) {
cur.each(function(err, doc) {
//Perform some operations on received document like
//adding it to other collection or generating alert
}); //cur.each
}); //find
到目前為止,一切正常。
現在,當最終用戶想要在運行時添加另一個規則時,問題就開始了:
2)Rule2:如果“評級”大於8,則生成通知/警報
現在,我想在查詢可尾游標時也考慮此條件/規則。 但是當前光標僅根據Rule1給出的條件已經處於等待狀態。
有沒有辦法動態地更新查詢條件,以便我也可以包括Rule2的條件?
我嘗試搜索,但找不到實現此目的的方法。
有沒有人有任何建議/指針來解決這種情況?
否。一旦游標在服務器上打開,便無法修改。 您需要終止游標並重新打開它以覆蓋這兩個條件,或者打開第二個游標以覆蓋第二個條件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.