是否可以按嵌套数组的大小订购MongoDB集合?比方说,我们有一个问题文档的集合,每个文档都有一个嵌套的答案数组。我希望能够对收藏品进行排序并找出最常回答的问题吗?我一直在环顾四周,我不确定它是否可以直接来自MongoDB,我认为提取所有问题然后用Java对它们进行排序会非常耗费性能。
答案 0 :(得分:4)
您无法根据嵌套集合的大小进行查询,您需要创建具有此类需求的集合大小的字段(mongo db documentation):
$ size运算符匹配任何数组 具有指定数量的元素。 以下示例将匹配 object {a:[“foo”]},因为那个数组 只有一个要素:
db.things.find({a:{$ size:1}} );
您不能使用$ size来查找范围 大小(例如:带有的数组) 超过1个元素)。如果你需要 查询范围,创建一个额外的 你增加的大小字段 添加元素。