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

$ khớp trong kết quả tra cứu $

Với MongoDB 3.4, bạn có thể chạy một đường dẫn tổng hợp sử dụng $addFields đường dẫn và $filter toán tử chỉ trả về Company mảng với các phần tử phù hợp với điều kiện cho trước. Sau đó, bạn có thể bọc $filter biểu thức với $arrayElemAt toán tử để trả về một tài liệu về bản chất là kết hợp $unwind chức năng bằng cách làm phẳng mảng.

Hãy làm theo ví dụ sau để hiểu khái niệm trên:

db.users.aggregate([
    { "$match": { "UserName": "administrator" } },
    { 
        "$lookup": { 
            "from": 'companies', 
            "localField": 'CompanyID', 
            "foreignField": 'CompanyID', 
            "as": 'Company' 
        } 
    },
    {
        "$addFields": {
            "Company": {
                "$arrayElemAt": [
                    {
                        "$filter": {
                            "input": "$Company",
                            "as": "comp",
                            "cond": {
                                "$eq": [ "$$comp.CompanyName", "edt5" ]
                            }
                        }
                    }, 0
                ]
            }
        }
    }
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sắp xếp mảng trong tài liệu với MongoDB

  2. Làm cách nào để sử dụng $ set và ký hiệu dấu chấm để cập nhật các phần tử mảng được nhúng bằng cách sử dụng phần tử cũ tương ứng?

  3. Tổng hợp MongoDB trên các đối tượng trong mảng

  4. Cách sử dụng mongodump cho 1 bộ sưu tập

  5. Làm cách nào để tôi có thể quảng bá trình điều khiển Javascript gốc MongoDB bằng bluebird?