簡體   English   中英

Mongodb:collection.find()中的動態查詢對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM