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

Pobierz wiele elementów z zapytaniami w tablicy obiektów w kolekcji MongoDB

Możesz użyć $redact operator:

db.buildings.aggregate([
{$match:{"zone.AHU":{$exists:true}}},
{$redact:{
  $cond:{
       if:{$or:[{$eq:["$AHU","C"]},{$not: "$AHU"}]},
       then:"$$DESCEND",
       else:"$$PRUNE"   
     }  
   }}  
]) 

Zapamiętaj {$not: "$AHU"} jest ważne, aby był włączony, aby górny element nie został wykluczony. Jeśli nie zostanie dodany, górny element zostanie pominięty, a tym samym cały osadzony dokument.

Wyjście:

{
"_id" : ObjectId("5aba4460a042dc4a2fdf26cd"),
"name" : "Test Street",
"coordinate" : [ 
    12, 
    31
],
"yearlyEnergyCost" : 1444,
"zone" : [ 
    {
        "name" : "AHU-C-Z2",
        "_id" : ObjectId("5aba4460a042dc4a2fdf26ce"),
        "AHU" : "C",
        "precooling" : [],
        "subZone" : []
    }, 
    {
        "name" : "AHU-C-Z1",
        "AHU" : "C",
        "_id" : ObjectId("5ac09c898249affa03506eff"),
        "precooling" : [],
        "subZone" : []
    }, 
    {
        "name" : "AHU-C-Z3",
        "AHU" : "C",
        "_id" : ObjectId("5ac09c898249affa03506efe"),
        "precooling" : [],
        "subZone" : []
    }
],
"__v" : 2
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy jest to bezpieczny sposób wstawiania i aktualizowania tablicy obiektów w mongodb?

  2. Docker mongo dla pojedynczego (tylko węzeł podstawowy) zestawu replik (do rozwoju)?

  3. Nie można połączyć się z MongoDB Atlas przy użyciu Mongoose z parametrami połączenia

  4. Testy Rspec kończą się losowo niepowodzeniem podczas analizy obiektów ActiveRecord generowanych przez zdarzenia Mongoid

  5. jak mogę sprawdzić, na jakich portach mongo nasłuchuje z powłoki mongo?