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

Znajdź rekordy z polem w zagnieżdżonym dokumencie, gdy pola nadrzędne nie są znane

Aby wyszukać klucz w zagnieżdżonym dokumencie, musisz rekurencyjnie iterować pola dokumentów, możesz to zrobić w JavaScript za pomocą $where metoda w MongoDB Poniższe zapytanie wyszuka, czy nazwa klucza istnieje w dokumentach i ich poddokumentach.

Sprawdziłem to na podanym przez Ciebie przykładzie i działa idealnie.

db.getCollection('test').find({ $where: function () {
    var search_key = "lev3_field2";

    function check_key(document) {
      return Object.keys(document).some(function(key) {
        if ( typeof(document[key]) == "object" ) {
            if ( key == search_key ) {
                return true;
            } else {
                return check_key(document[key]);
            }
        } else {
          return ( key == search_key );
        }
      });
    }
    return check_key(this);
  }}

);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Golang/mgo:Jak mogę poprosić MongoDB o użycie aktualnego czasu w polu?

  2. Dlaczego alert jest zdefiniowany [fine]d, a następnie dwie linie później, nie jest to (Meteor)?

  3. Pobierz wygenerowany skrypt w sterowniku MongoDB C#

  4. MongoDB $istnieje

  5. nie można uruchomić złącza mongo