【问题标题】:Ordering MongoDB collection by size of nested array按嵌套数组的大小对 MongoDB 集合进行排序
【发布时间】:2010-12-15 17:11:42
【问题描述】:

是否可以按嵌套数组的大小对 MongoDB 集合进行排序?例如,我们有一组问题文档,每个文档都有一个嵌套的答案数组。我希望能够对集合进行排序并找出回答最多的问题?我一直在环顾四周,我不确定它是否可以直接从 MongoDB 执行,我认为提取所有问题然后在 Java 中对它们进行排序会非常耗费性能。

【问题讨论】:

    标签: java mongodb


    【解决方案1】:

    您不能按嵌套集合的大小进行查询,您需要创建具有集合大小的字段以满足此类需求(mongo db documentation):

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-06
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多