【发布时间】:2014-03-05 16:10:50
【问题描述】:
考虑集合orgs:
db.orgs.save({"name":"bbc","people":[{"user_id":new ObjectId(),"role":"admin"},{"user_id":new ObjectId(),"role":"user"}]})
这是:
db.orgs.find().pretty()
以下结构:
{
"_id" : ObjectId("5316c81cb338e1a08a386367"),
"name" : "bbc",
"people" : [
{
"user_id" : ObjectId("5316c81cb338e1a08a386365"),
"role" : "admin"
},
{
"user_id" : ObjectId("5316c81cb338e1a08a386366"),
"role" : "user"
}
]
}
所以,如果我们查询user_id:5316c81cb338e1a08a386366 和role:admin:
db.orgs.find({
"people.user_id":ObjectId("5316c81cb338e1a08a386366"),
"people.role":"admin"
}).pretty()
它确实找到了文档(尽管 user_id 5316c81cb338e1a08a386366 具有角色 user)。
我错过了什么吗?
以下示例使用点符号来查询文档,其中 memos 字段的值是一个数组,其中至少有一个 包含等于“准时”的字段备忘录的子文档和 字段等于“运费”:
db.inventory.find(
{
'memos.memo': 'on time',
'memos.by': 'shipping'
}
)
【问题讨论】:
标签: mongodb