按嵌套数组的大小排序MongoDB集合

时间:2010-12-15 17:11:42

标签: java mongodb

是否可以按嵌套数组的大小订购MongoDB集合?比方说,我们有一个问题文档的集合,每个文档都有一个嵌套的答案数组。我希望能够对收藏品进行排序并找出最常回答的问题吗?我一直在环顾四周,我不确定它是否可以直接来自MongoDB,我认为提取所有问题然后用Java对它们进行排序会非常耗费性能。

1 个答案:

答案 0 :(得分:4)

您无法根据嵌套集合的大小进行查询,您需要创建具有此类需求的集合大小的字段(mongo db documentation):

  

$ size运算符匹配任何数组   具有指定数量的元素。   以下示例将匹配   object {a:[“foo”]},因为那个数组   只有一个要素:

     

db.things.find({a:{$ size:1}}   );

     

您不能使用$ size来查找范围   大小(例如:带有的数组)   超过1个元素)。如果你需要   查询范围,创建一个额外的   你增加的大小字段   添加元素。