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

Làm cách nào để sử dụng $ lookup như INNER JOIN trong MongoDB Aggregation?

Chỉ cần thêm $match giai đoạn đường ống bỏ qua các tài liệu có inventory_docs trống đồng ruộng. Không có cách nào khác để đạt được điều đó.

Truy vấn:

db.getCollection('inventory').aggregate([
    {
        $lookup: {
            from: "orders",
            localField: "sku",
            foreignField: "item",
            as: "inventory_docs"
        }
    },
    {
        $match: {
            "inventory_docs": {$ne: []}
        }
    }
])

Kết quả:

{
    "_id" : 1.0,
    "sku" : "abc",
    "description" : "product 1",
    "instock" : 120.0,
    "inventory_docs" : [ 
        {
            "_id" : 1.0,
            "item" : "abc",
            "price" : 12.0,
            "quantity" : 2.0
        }
    ]
}

{
    "_id" : 4.0,
    "sku" : "jkl",
    "description" : "product 4",
    "instock" : 70.0,
    "inventory_docs" : [ 
        {
            "_id" : 2.0,
            "item" : "jkl",
            "price" : 20.0,
            "quantity" : 1.0
        }
    ]
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lưu trữ một dữ liệuURL trong MongoDB để truy cập nó qua URL cục bộ (JS)

  2. Làm cách nào để lưu tệp vào MongoDB?

  3. pymongo:MongoClient hoặc Kết nối

  4. Làm cách nào để sắp xếp theo $ elemMatch trong MongoDB?

  5. Không thể kéo từ mảng lồng nhau và truy vấn trả về tài liệu con bằng MongoTemplate