MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Hasil agregat MongoDB dengan dua kunci berbeda

Gunakan pipa agregasi berikut untuk mendapatkan daftar ObjectIds yang diinginkan. Ini menggunakan $ifNull operator agregasi untuk menambahkan _id bidang jika larik general_products bidang tidak ada:

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"
            }
        }
    }
]);

Ini akan memberi Anda dokumen dengan array list_products dengan 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. meneruskan luwak sebagai argumen ke suatu fungsi

  2. Bagaimana cara menampilkan gambar yang diunggah ke sisi server sekali lagi di browser menggunakan tumpukan MEAN?

  3. Mengintegrasikan mongodb dengan neo4j, apakah ada API yang akan menautkannya?

  4. Bagaimana MongoDB Mengaktifkan Pembelajaran Mesin

  5. Cara memproyeksikan/memfilter kunci yang disematkan dengan menerapkan regex pada tombol