【发布时间】:2020-10-23 02:28:04
【问题描述】:
是否有可能找到一个属性(数组)的大小大于/小于其他属性(数字)的所有文档? 我们假设内部模式 numberProperty 的类型是 Number 并且数组包含 ObjectIds。
我的意思是这样的:
Collection.find({array: { $size: { $lt: numberProperty} }});
Triend 也是这样的,但也不起作用:
Collection.find({$expr: { $gt: ["$numberProperty", "$array.length"] }});
【问题讨论】:
-
您需要与静态比较的数字吗?例如
myArrayProperty.length > 3 -
它是一个数字,但它是包含数组的同一个对象的属性,所以......它不是一个静态数字,而是一个变量。
-
请分享示例输入和预期输出
-
出于示例的目的,我使用了通用名称,但我只是在条件内传递了属性名称。预期的输出是对象的 ID,这就是为什么在实际应用中我添加:.distinct("_id") 只获取对象的 ID 而不是整个对象,但想法是一样的
-
抱歉,无法理解。如果您可以分享我可以在本地数据库中插入的示例文档,然后分享我可以测试查询的预期查询结果,那就太好了。
标签: javascript node.js mongodb mongoose mongoose-schema