开发者社区> 问答> 正文

如何用Mongodb复杂条件查询数组内成员?

[{
    "_id" : ObjectId("55f181e43fdda0be857daaf4"),
    "form_info" : [ 
        {
            "val" : "王思聪",
            "id" : "1"
        }, 
        {
            "val" : "13800138000",
            "id" : "2"
        }
    ],
    "tags" : [],
    "__v" : 0
},
{
    "_id" : ObjectId("55f181e43fdda0f48578acf4"),
    "form_info" : [ 
        {
            "val" : "李丽珍",
            "id" : "1"
        }, 
        {
            "val" : "13934438010",
            "id" : "2"
        }
    ],
    "tags" : [],
    "__v" : 0
}]

如果我想筛选form_info数组内符合 成员对象内id为1,val为王思聪且id为2,val为13800138000 的记录。
即结果是:

[{
    "_id" : ObjectId("55f181e43fdda0be857daaf4"),
    "form_info" : [ 
        {
            "val" : "王思聪",
            "id" : "1"
        }, 
        {
            "val" : "13800138000",
            "id" : "2"
        }
    ],
    "tags" : [],
    "__v" : 0
}]

展开
收起
蛮大人123 2016-06-14 17:18:46 2179 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    > db.test6.find({"test._id":ObjectId("55f181e43fdda0be857daaf4")},{"test.$":1}).pretty();
    {
        "_id" : ObjectId("55f255aef566c6baf2af1fac"),
        "test" : [
            {
                "_id" : ObjectId("55f181e43fdda0be857daaf4"),
                "form_info" : [
                    {
                        "val" : "王思聪",
                        "id" : "1"
                    },
                    {
                        "val" : "13800138000",
                        "id" : "2"
                    }
                ],
                "tags" : [ ],
                "__v" : 0
            }
        ]
    }

    就好了

    2019-07-17 19:38:17
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
开源数据库 MongoDB 专场 MongoDB疑难杂症分析及优化 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载

相关镜像