如何用Mongodb复杂条件查询数组内成员?
PHPz
PHPz 2017-04-28 09:04:07
0
2
513
[{
    "_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,val13800138000 的记录。

即结果是:

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

该怎么写好? 谢谢大大们

PHPz
PHPz

学习是最好的投资!

reply all(2)
漂亮男人

能看一下你的这个记录在数据库中怎么存储的吗?是这样:

db.test6.insert(
{"test":[{
    "_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
}]})

还是数组里面的每个子文档都是一个独立的记录?真要是按你上边展示的这样,那你直接查_id不就取出唯一的记录了。如果按我的理解,那执行这个查询:

> 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
        }
    ]
}

就好了

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!