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

Актуализиране и търсене на структура за вграждане на Mongodb?

  1. Синтактичната грешка е, защото трябва да използвате кавички около services.port_info
  2. Въпреки това, $elemMatch във вложени полета в момента не се поддържа както и да е
  3. За щастие не ви трябва $elemMatch за този вид заявка

Това трябва да направи:

db.hosts.find({ ip : "127.0.0.1"}, { "services.port_info.product" : "ssh" });

$elemMatch се изисква, ако искате да съпоставите множество критерии в обекта на масива, например „намери всички, където портът е 9000 и протоколът е UDP“. Това няма да се поддържа от вашата структура на данни. Не съм сигурен защо port_info е масив от обекти (може би за несигурни ситуации, при които един порт може да принадлежи на две различни услуги?) - ако беше един обект, дори $elemMatch ще се поддържа.

Освен това имайте предвид, че такава заявка винаги ще върне целия обект.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да актуализирам вграден документ във вложен масив?

  2. Може ли MongoDB да попълва празни документи

  3. Doctrine ODM / MongoDB не опитва повторно заявки?

  4. Намиране на най-висока стойност от подмасиви в документи

  5. SpringBoot в Docker не се свързва с Mongo в Docker