что не совсем по теме, но всё же
Есть два запроса:
1) `{
"obj": {
"$eq": {
"test1": "test1",
"test2": 2
}
}
}`
или после преобразования в bson.M: map[$and:[map[$and:[map[obj:map[$eq:map[test1:test1 test2:2]]]]]]]
2)`{
"obj.test1": {
"$eq": "test1"
},
"obj.test2": {
"$eq": 2
}
}`
или после преобразования в bson.M: map[$and:[map[$and:[map[obj:map[$eq:map[test1:test1 test2:2]]]]]]]
Запросы делаю в через гошный драйвер (Find())
Проблема в том, что первый запрос выполняется через раз, то есть данные то приходят, то нет. Второй же запрос выполняется корректно всегда. Не понимаю, в чём может быть проблема. Может, с запросом что?
Замечу, что если делать запрос напрямую в монге (например, из её терминала), то все два запроса - окей
Никто с таким не сталкивался?
В первом случае вы ищете полное совпадение объекта, т.е. чтобы у него было два указанных поля, с такими значениями и в таком порядке Во втором проверяете что значения полей равны указанным и неважно наличие других полей и их порядок в документе. Первый вариант практически не применяется в виду особенностей, а второй является общеиспользуемым (он же dot notation ) для поиска по вложенным полям
Обсуждают сегодня