【问题标题】:MongoDB get document nested array by idMongoDB通过id获取文档嵌套数组
【发布时间】:2018-03-03 03:03:10
【问题描述】:

我有一个带有嵌套附件数组的流程文档,我想返回获取带有流程 _id 和附件 _id 的 fileName

我尝试了很多选项,我最近的尝试仍然返回附件数组中的所有项目。我只想要与过去的附件 id 匹配的附件。

db.getCollection('processes').find(
{$and: [ { "_id" : ObjectId("5a9455d7854cd987a40b1ba4") }, 
{ "attachments._id" : ObjectId("5a983da6201ba5a2302fb38f") }]},
{'attachments._id': 1, 'attachments.fileName': 1}
)

非常感谢任何建议,谢谢!

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    您可以在投影中使用$elemMatch 从嵌套数组中仅获取一个过滤后的子文档:

    db.getCollection('processes').find(
        { "_id" : ObjectId("5a9455d7854cd987a40b1ba4") },
        { attachments: { $elemMatch: { _id: ObjectId("5a983da6201ba5a2302fb38f") } } } )
    

    【讨论】:

    • 非常感谢 Mickl!,这正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 2023-03-05
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多