MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

zapytanie mongodb bez nazwy pola

Niestety MongoDB nie obsługuje żadnej metody odpytywania wszystkich pól o określonej wartości. Istnieje już zgłoszenie Jira żądające tego ulepszenia:https://jira.mongodb.org/browse/SERVER-1248 . Zapraszam do komentowania, głosowania lub śledzenia tego zgłoszenia.

W międzyczasie zwykłym sposobem obsługi tego jest zmiana schematu MongoDB. Na przykład możesz zmienić istniejący schemat:

{"123": "apple", "217": "pear", "179": "orange"} 
{"831": "pear", "189": "grapes"} 

Możesz to ustrukturyzować mniej więcej tak:

 { tags: [
        { cid: "123", value: "apple" },
        { cid: "217", value: "pear" },
        { cid: "179", value: "orange" },
      ]
    }
   { tags: [
        { cid: "831", value: "pear" },
        { cid: "189", value: "grapes" },
      ]
    }

Gdy to zrobisz, możesz wykonać następujące zapytanie, aby znaleźć wszystkie żądane dokumenty:

 db.docs.find( {'tags.value': "apple" } )

Pamiętaj, że ten schemat umożliwia indeksowanie pól „tags.cid” i „tags.value”, czego nie ma w oryginalnym schemacie.

Mam nadzieję, że to pomoże.

-William



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB – przynieś własne certyfikaty SSL

  2. Mongoose zawsze zwraca pustą tablicę NodeJS

  3. Mongo $w wydajności operatora

  4. MongoDB konwertuje datę na ciąg

  5. Jak przekonwertować zestaw replik MongoDB na samodzielny serwer?