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

$elemDopasuj z wyrazistym

Zgadywanie testing.device_serial to tablica, oto Twój błąd:

 db.sessions.distinct("tests.device_serial", {"tests.device_serial" : {$ne: ""}})

Zapytanie w Twoim odrębnym poleceniu filtruje dokumenty, w których tablica „testy” zawiera pole nazwane device_serial z wartością "", a nie tylko pola w tablicy.

Aby osiągnąć to, co chcesz, możesz użyć struktury agregacji, rozwinąć tablicę do wielu dokumentów, filtrować i grupować według wartości null za pomocą polecenia $addToSet, aby uzyskać różne wartości.

Oto zapytanie :

db.sessions.aggregate(
    [
        {
            $unwind: {
                path : "$tests"
            }
        },
        {
            $match: {
            "tests.device_serial":{$ne:""}
            }
        },
        {
            $group: {
              "_id":null,
                "device_serials":{$addToSet:"$tests.device_serial"}
            }
        },
    ]
);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. NodeJS + MongoDB:insertOne() - pobierz wstawiony dokument z result.ops

  2. MongoDB:Usuwanie pola ze WSZYSTKICH poddokumentów w polu tablicy

  3. Pobieranie słownika wewnątrz listy przez klucz w mongoDB (mongoengine)

  4. Mongodb - złe zapytanie:BadValue nieznany operator najwyższego poziomu:$gte

  5. Limit szybkości POBIERZ prośby