我喜欢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"}
想法?经验?传统智慧根本就不是这样做的吗?