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

mongoDB Tổng hợp retuns trống

Hãy thử đường dẫn tổng hợp sau, nó không trả về một mảng trống cho các phần tử không hoạt động nhưng gần với kết quả hơn:

db.collection.aggregate([
    {
        "$match": {
            "name": "Andre",
            "$or": [
                { "fruits.active": true },
                { "cars.active": true }
            ]
        }
    },
    { "$unwind": "$fruits" },
    { "$unwind": "$cars" },
    {
        "$match": {            
            "$or": [
                { "fruits.active": true },
                { "cars.active": true }
            ]
        }
    },
    {
        "$project": {
            "name": 1,
            "active_cars": "$cars.active",
            "active_fruits": "$fruits.active",
            "cars": 1,
            "fruits": 1
        }
    },
    {
        "$project": {
            "name": 1,
            "cars": {
                "$cond": [
                    { "$eq": ["$active_cars", true] },
                    "$cars",
                    {}
                ]
            },
            "fruits": {
                "$cond": [
                    { "$eq": ["$active_fruits", true] },
                    "$fruits",
                    {}
                ]
            }
        }
    },   
    { 
        "$group": {
            "_id": {
                "_id": "$_id",
                "name": "$name"
            },
            "cars": { "$addToSet" : "$cars" },
            "fruits": { "$addToSet" : "$fruits" }
        }
    },
    {
        "$project": {
            "_id": 0,
            "name": "$_id.name",
            "cars": 1,
            "fruits": 1
        }
    }    
])

Đầu ra

/* 1 */
{
    "result" : [ 
        {
            "cars" : [ 
                {
                    "active" : true,
                    "carname" : "GM"
                }
            ],
            "fruits" : [{}],
            "name" : "Andre"
        }
    ],
    "ok" : 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nhóm và đếm bằng cách sử dụng khung tổng hợp

  2. Trong mongodb-go-driver, cách điều khiển / bỏ quản lý BSON vào một cấu trúc

  3. Mongoose Query:Tìm một phần tử bên trong một mảng

  4. Nhóm Mongo và đẩy:đẩy tất cả các lĩnh vực

  5. Tệp nhật ký của mongodb trong mac ở đâu