【问题标题】:How to find documents using a field of an embedded document that is inside an array?如何使用数组内的嵌入文档的字段查找文档?
【发布时间】:2021-11-02 02:00:04
【问题描述】:

我有学生记录的数据/架构:

{

    "_id" : ObjectId("579ed0ba7d509178a97fae8f"),
    "fullName" : "ABC",
    "enroll" : "AB1234",
    "profile" : {
        "isCompleted" : true,
        "verification" : [ 
            {
                "pro" : true,
                "verifiedBy" : "ProAct",
                "verifiedOn" : ISODate("2016-09-12T07:36:53.680Z")
            }, 
           
        ],
        "isChecked" : false,
        "fullName" : "ABC",
        "gender" : "Male",
        "emergencyContactPerson" : {
            "name" : "Father",
            "mobile" : "9412345678",
            "email" : "example@gmail.com",
        },
    },
    "contact" : {
        "emailID" : {
            "isVerified" : true,
            "isChecked" : false,
            "verificationTokenExpiresIn" : ISODate("2016-08-01T05:35:00.218Z"),
            "verifiedOn" : ISODate("2016-08-01T04:35:10.992Z")
        },
        "mobileID" : {
            "isVerified" : true,
            "isChecked" : false,
            "verificationTokenExpiresIn" : ISODate("2016-08-01T04:42:45.206Z"),
            "verifiedOn" : ISODate("2016-08-01T04:33:36.692Z")
        }
    },
    "services" : [ 
        {
            "applied" : true,
            "appliedOn" : ISODate("2016-09-17T03:01:49.829Z"),
            "status" : "Created",
            "mac" : "70-77-88-00-AA-BB",
            "createdBy" : "Example"
        },
    ]
}

如何构建查询,在 mac 地址 70-77-88-00-AA-BB 的帮助下获取学生信息。我只知道mac地址值?

我是新来的,请帮帮我

【问题讨论】:

标签: mongodb mongoose mongodb-query


【解决方案1】:

查询

  • services.mac 是所有服务成员的mac地址数组
  • 在查询中(不是在聚合中$eq)如果数组包含该值,则该数组与该值相等,因此上述方法将起作用
  • 下面的查询返回所有在 services 数组上具有该 mac 地址的学生
  • 如果您想加快速度,还可以在“services.mac”上创建索引

*阅读 mongodb 文档,它非常好,并附有示例

Test code here

db.collection.find({
  "services.mac": "70-77-88-00-AA-BB"
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 2020-06-26
    • 2019-11-17
    相关资源
    最近更新 更多