我的收藏结构*“countcollection”* 如下所示
{
"limitcount": 10000,
"currentcount": 100
}
我想纠正能够比较
currentcount<($lt)limitcount
的 mongoquery或
currentcount>($gt)limitcount
。首先,我写了如下的 mongo 查询
db.countcollection.find({"currentcount":{$lt:{"limitcount"}}});
db.countcollection.find({"currentcount":{$gt:{"limitcount"}}});
但它执行失败。
请为此 mongoquery 提供您的意见。
提前致谢 。
java
最佳答案
正如 Bugai13 所说,您不能对查询中的 2 个字段进行比较。
$where 的问题在于性能——因为这是一个 javascript 函数,它将为每个文档执行,因此它必须扫描每个文档。
因此,您可以在这些现有字段旁边存储另一个字段(然后您可以对其进行索引)
例如
{
"limitcount": 10000,
"currentcount": 100,
"remainingcount" : 9900
}
所以你可以在新字段上查询:
db.countcollection.find({"remainingcount" : {$gt : 0}})
db.countcollection.find({"remainingcount" : {$lt : 0}})
关于mongodb - 在 mongodb 查询中使用 $lt 或 $gt 运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5390508/