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

съвпадение на масив mongodb

Интересно..Проблемът е..операторите $in и $or се прилагат към елементите на масива, с които сравнявате с всеки документ в колекцията, а не върху елементите на масивите в документите.. За да обобщим въпроса ви:искате да е съвпадение, ако някой от документите в колекцията е подмножество от предадения масив. Не мога да измисля начин да направя това, освен ако не размените входа и изхода. Това, което имам предвид е... Нека вземем първия ви вход:

db.test.find( {a: [1,2,3,4]} );

Помислете дали да не поставите това във временна колекция, например,temp като:

db.temp.save( {a: [1,2,3,4]} );

Сега повторете всеки документ в тестовата колекция и го „намерете“ във temp, с оператора $all, за да се уверите, че е напълно включен, т.е. направете нещо подобно:

foreach(doc in test)
{ db.temp.find( { a: { $all: doc.a } } ); }


Това определено е заобиколно решение! Не съм сигурен дали ми липсва някой друг оператор, който може да свърши тази работа.



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

  2. Четене и показване на изображения от mongoDB с помощта на GridFs

  3. Основи на репликацията на веригата на MongoDB

  4. Грешка при избора на сървър на Docker и mongo-go-driver

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