查询数组中的部分对象-MongoDB

查询数组中的部分对象-MongoDB,mongodb,mongodb-php,Mongodb,Mongodb Php,我有一个简单的结构化文档,如下所示: "people" : [ { "id" : "6241863", "amount" : 5 } ], 人可以包含多个元素。我已经设法让它工作: db.village.findOne({"people": {"$in": [{"id": "6241863", "amount": 5}]}}) 但我想忽略金额,搜索任何包含id为6241863的人和任何金额的文档。试试看 db.village.findOne({

我有一个简单的结构化文档,如下所示:

"people" : [
    {
        "id" : "6241863",
        "amount" : 5
    }
],
人可以包含多个元素。我已经设法让它工作:

db.village.findOne({"people": {"$in": [{"id": "6241863", "amount": 5}]}})
但我想忽略金额,搜索任何包含id为6241863的人和任何金额的文档。

试试看

db.village.findOne({"people" : { "$in" : [{ "id" : "6241863" , "amount" : { "$ne" : null } }]}})
根据,可以将数组值查询与。下面是一个使用您的模式的示例:

$ mongo
MongoDB shell version: 2.1.0
connecting to: test
> db.users.save({_id: 1, friends: [{id: 2, name: 'bob'}]})
> db.users.find({friends: {id: 2, name: 'bob'}})
{ "_id" : 1, "friends" : [ { "id" : 2, "name" : "bob" } ] }

> db.users.find({'friends.id': 2})
{ "_id" : 1, "friends" : [ { "id" : 2, "name" : "bob" } ] }

> db.users.find({'friends.name': 'bob'})
{ "_id" : 1, "friends" : [ { "id" : 2, "name" : "bob" } ] }

> db.users.find({'friends.name': 'ted'})
> 

无法在“查找查询”中检索单个文档数组的一部分。你必须在客户端这样做你是如何保存数据的,我有一个类似这个产品的shema\u video:[{thum\u src:String,video\u name:String,video\u path:String}]我不知道如何保存数据如果用户上方有一个对象,你会怎么做,例如
角色
包含
用户
管理员
,而您仍然只想搜索用户?