我的收藏结构*“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/

10-11 21:25