我有一个文档结构,其中包含一个名为的属性shares
,它是一个对象数组。现在我尝试使用点符号 ( )shared
匹配包含匹配字符串的所有文档。_account
shares._account
它不起作用,但似乎是因为_
property 前面的 char _account
。因此,如果我将要搜索的字符串放在该对象的 name 属性中,则使用点表示法一切正常。
属性名称有什么限制吗?认为 an_
是允许的,因为id
在 mongodb 中也有它,对我来说,这是 daclare 绑定的一种约定。
例子:
// Collection Item example
{
"_account": { "$oid" : "526fd2a571e1e13b4100000c" },
"_id": { "$oid" : "5279456932db6adb60000003" },
"name": "shared.jpg",
"path": "/upload/24795-4ui95s.jpg",
"preview": "/img/thumbs/24795-4ui95s.jpg",
"shared": false,
"shares": [
{
"name": "526fcb177675f27140000001",
"_account": "526fcb177675f27140000001"
},
{
"name": "tim",
"_account": "526fd29871e1e13b4100000b"
}
],
"tags": [
"grüngelb",
"farbe"
],
"type": "image/jpeg"
},
我试图通过以下查询获取该项目:
// Query example
{
"$or": [
{
"$and": [
{
"type": {
"$in": ["image/jpeg"]
}
}, {
"shares._account": "526fcb177675f27140000001" // Not working
//"shares.name": "526fcb177675f27140000001" // Working
}
]
}
]
}