我喜欢 MongoDB,我突然想到了一个小的歧义,我想知道是否有人以前见过这个并且可能会知道答案:-)。
在 mongo 中,要访问子对象,您可以使用点符号,例如:
db.persons.find({ "address.state" : "CA" })
这很简单。 mongo 如何(如果有的话)处理以下之间的区别:
{
"address" { "state" : "CA" }
}
和
{
"address.state" : "CA"
}
据我所知,点在键中是合法的。此外,我相信这也是一份法律文件:
{
"address" { "state" : "A" },
"address.state" : "B"
}
在这种情况下,我可以看到此查询返回 "A"
或 "B"
:
db.persons.find({}, {"address.state"}) // all docs selecting address.state as result.
我想数组也会出现类似的潜在问题:
{"a":["test"]}
可以通过以下方式访问:
{"a.0"}
当然
{"a" {"0" : "test"} }
也可以通过以下方式访问:
{"a.0"}
想法?经历?传统智慧就是不这样做吗?
最佳答案
诸如“address.state”之类的键是不合法的。来自 here :
Field names cannot contain dots (i.e.
.
) or null characters, and they must not start with a dollar sign (i.e.$
).
关于mongodb - mongo点符号歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10333540/