Таким образом, если вы хотите вернуть только первый соответствующий элемент, вы должны использовать limit(n)
и запросить его следующим образом:
1. дает область как c или страну d, тогда он возвращает документ.1006 * db.items.find( { $or : [ {"loc.area": "c" } ,
{"loc.country ": "d" } ] } ).limit(1);
2. дает область как w или страну как r, затем не возвращает элемент
db.items.find( { $or : [ {"loc.area": { "$ne" : "w" } },
{"loc.country": { "$ne" : "r" } } ] } ).limit(1);
Если вы хотите искать только в первых элементах вложенногоВ массиве вы можете сделать это, используя позиционный оператор, добавив .0.
-> loc.0.area
.
Обновление: Сначала я неправильно понял ваш вопрос.Теперь я вижу, что вы ищете loc.0.area .