私は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"}
考え?経験?従来の知識は単にそれをしないのですか?