【问题标题】:Querying an array of array in mongoDb查询 mongoDb 中的数组数组
【发布时间】:2014-07-13 14:50:34
【问题描述】:

我有这份文件

{ "_id" : ObjectId("53c27ddf6f449b0572e8af95"), "Data" : [ [ { "_id" : 1, "Dados" : "dia:10:#mes:Outubro:#ano:1986:#hora:07:minuto:29:#segundo:16" } ] ] }

试过了

db.data.find({ Data: {$in: {$elemMatch { _id: {$gte: 2}}}}})

并尝试过

db.data.find({Data: {$elemMatch:{$elemMatch:{$in:[_id: 2]}}}})

没有工作=\

我想要的是找到 id = 1

我希望你们能帮助我,因为我不知道还能做什么。我从这个链接Querying an array of arrays尝试了这段代码 感谢您的关注。

【问题讨论】:

    标签: arrays mongodb find querying


    【解决方案1】:

    你可以这样做:

    db.data.find({"Data":{$elemMatch:{$elemMatch:{_id:1}}}})
    

    【讨论】:

    • 您可以删除它。删除“”后它也将起作用。实际上,将字段放在“”中是一个好习惯,因为有时您可能会使用嵌套字段,在这种情况下使用不带“”的字段会导致错误。现在,您可以将其删除。
    • 啊,我明白了,谢谢,我会保持这个习惯,假设我想显示所有内容,我应该使用 db.data.find({"Data":{$elemMatch:{$elemMatch :{_id:{$gt:0}}}}}),对吗?还有别的办法吗?这是我的最后一个问题,非常感谢你 dark_shadow
    • 显示所有内容是什么意思?如果您想说您想要所有 _id > 0 的文档,那么您的查询是正确的。
    • 是的,显示所有文件,我现在有另一个问题,我应该在这里发布还是问另一个问题?大约是多个 auto_increment。
    • 您的问题似乎与现有问题不同。你应该为它创建一个单独的线程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2015-08-13
    相关资源
    最近更新 更多