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

Kết quả tổng hợp MongoDB với hai khóa khác nhau

Sử dụng đường dẫn tổng hợp sau để có được danh sách các ObjectIds mong muốn. Điều này sử dụng $ifNull toán tử tổng hợp để thêm _id trường nếu mảng general_products trường không tồn tại:

db.products.aggregate([
    {
        "$match": {"warehouse_sku": /^1/ }
    },
    {
        "$group": {
            "_id": {
                "_id": "$_id",
                "general_products": "$general_products"
            },
            "data": {
                "$addToSet": "$_id"
            }
        }
    },
    {
        "$project": {
            "_id": 0,
            "general_products": {
                "$ifNull": ["$_id.general_products", "$data"]
            }
        }
    },
    {
        "$unwind": "$general_products"
    },
    {
        "$group": {
            "_id": null,
            "list_products": {
                "$addToSet": "$general_products"
            }
        }
    }
]);

Điều này sẽ cung cấp cho bạn một tài liệu với mảng list_products với ObjectIds:

/* 1 */
{
    "result" : [ 
        {
            "_id" : null,
            "list_products" : [ 
                ObjectId("554b9f223d77c810e8915539"), 
                ObjectId("554b9f2e3d77c810e8915549"), 
                ObjectId("554b99b83d77c810e8915436"), 
                ObjectId("554b9f173d77c810e8915533"), 
                ObjectId("554b9f143d77c810e8915530"), 
                ObjectId("554b9f123d77c810e891552f")
            ]
        }
    ],
    "ok" : 1
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cập nhật nhiều tài liệu MongoDB trong NodeJS dường như không hoạt động

  2. nhược điểm của việc sử dụng IQueryable!

  3. Cài đặt MongoDB trên CentOS 7

  4. thực hiện không thành công khi cố gắng cài đặt trình điều khiển php mongo trên Centos 6

  5. kết nối với Mongodb bên trong một docker với GUI la bàn mongodb