MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB търсене за всеки dict в списъка в колекцията

Въпреки че се споменава, че наистина $and не е задължителен, и в двете форми това не е заявката, която искате. Имайте предвид следното:

db.user.find_one({ 'names.firstName': 'alice','names.lastName': 'jones' })

Това всъщност прави съответства на дадения запис, тъй като има и два елемента със стойности „firstName“, равни на „alice“, и „lastName“, равни на „jones“. Но, разбира се, проблемът тук е прост в това, че няма действителен елемент в масива, който има поддокумент и за двете стойности.

За да съвпаднете, когато елемент от масив съдържа „и двата“ дадени критерии, трябва да използвате $elemMatch оператор. Това прилага условието на заявката към "елементите" на масива.

db.user.find_one({ 
    'names': { '$elemMatch': { 'firstName': 'alice','lastName': 'smith' }
})

И разбира се, ако опитате "alice" и "jones", тогава това няма да съвпадне, тъй като никой елемент всъщност не съдържа тази операция.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как променяте потребителските разрешения на MongoDB?

  2. MongoDB $project:Запазване на предишни полета на конвейера

  3. htmlspecialchars премахнете стойността вътре в масива?

  4. Приложението Heroku се срива след актуализиране на MongoDB до 3.0

  5. Осигурете ред на сортиране от низови стойности в агрегирането на mongdb