Мне нравится MongoDB, и мне небезразлична небольшая двусмысленность, и мне было интересно, видел ли кто-нибудь это раньше и, возможно, знал бы ответ :-).mongo точка обозначение неоднозначность
в Монго, чтобы достичь в подобъектов, можно использовать точечную нотацию, например:
db.persons.find({ "address.state" : "CA" })
, который достаточно просто. Как (если он вообще) делает Монго сделку с разницей между:
{
"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"}
мысли? опыт? Разве обычная мудрость просто не делает этого?
Что происходит, когда вы пытаетесь выполнить эти запросы в оболочке монго? – maerics