MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Truy xuất nhiều phần tử được truy vấn trong một mảng đối tượng trong bộ sưu tập MongoDB

Bạn có thể sử dụng $redact nhà điều hành:

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

Hãy nhớ {$not: "$AHU"} là điều quan trọng cần được đưa vào để phần tử hàng đầu sẽ không bị loại trừ. Nếu không được thêm, phần tử trên cùng sẽ bị bỏ qua và do đó sẽ bỏ qua toàn bộ tài liệu được nhúng.

Đầu ra:

{
"_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. MongoDB dưới dạng dịch vụ cửa sổ và thiết lập bản sao

  2. Điều gì xảy ra khi các kết nối đến MongoDB không bị đóng?

  3. mongodb:bật textSearch

  4. Mongoose:đường dẫn lỗi xác thực là bắt buộc

  5. Nâng cấp lên Ubuntu 15.04 từ 14.10 làm hỏng mongo - làm thế nào để khắc phục?