数据库接近5GB。我有类似的文件:

{
    _id: ..
    user: "a"
    hobbies: [{
        _id: ..
        name: football
    },
    {
        _id: ..
        name: beer
    }
    ...
    ]
}

我想返回“爱好”多于0的用户
我试过了
db.collection.find({"hobbies" : { &gt : 0}}).limit(10)

而且它占用了所有RAM,但没有结果。
  • 如何进行此选择?
  • 以及如何仅返回:id,name,count?
  • 如何使用C#官方驱动程序?

  • TIA

    P.S.
    near我发现:
    “添加新字段以分配类别大小。这是mongo世界中的常见做法。”
    这是真的?

    最佳答案

    您是否尝试过使用hobbies.length。我还没有测试过,但是我相信这是在mongodb中查询数组范围的正确方法

    db.collection.find({$where: '(this.hobbies.length > 0)'})
    

    关于mongodb - Mongo DB : how to select items with nested array count > 0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7551645/

    10-16 18:55