繁体   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