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

Mảng zip với MongoDB

Bắt đầu từ MongoDB 3.4, chúng ta có thể sử dụng $ zip toán tử để nén các mảng của chúng tôi.

Điều đó đang được nói, chúng tôi không thể nhận được kết quả mong đợi của bạn trừ khi bạn biết độ dài mảng của mình.

db.collection.aggregate( [ 
    { "$project": { 
        "zipped": { 
            "$zip": { "inputs": [ "$A", "$B", "$C" ] } 
        } 
    }}
])

nơi sản xuất:

{ 
    "_id" : ObjectId("578f35fb6db61a299a383c5b"),
    "zipped" : [
        [ "A1", "B1", 100 ],
        [ "A2", "B2", 200 ],
        [ "A3", "B3", 300 ]
    ]
}

Nếu tình cờ biết số phần tử trong mỗi mảng con, chúng ta có thể sử dụng $ map toán tử biến trả về một mảng tài liệu con.

Trong $ map , chúng ta cần sử dụng $ arrayElemAt toán tử để đặt giá trị của trường A, B và C.

db.collection.aggregate( [ 
    { "$project": { 
        "zipped": { 
            "$map": { 
                "input": { 
                    "$zip": { "inputs": [ "$A", "$B", "$C" ] } 
                }, 
                "as": "el", 
                "in": { 
                    "A": { "$arrayElemAt": [ "$$el", 0 ] }, 
                    "B": { "$arrayElemAt": [ "$$el", 1 ] }, 
                    "C": { "$arrayElemAt": [ "$$el", 2 ] } 
                } 
            }
        }
    }}
] )

nơi sản xuất:

{
    "_id" : ObjectId("578f35fb6db61a299a383c5b"),
    "zipped" : [
        {
            "A" : "A1",
            "B" : "B1",
            "C" : 100
        },
        {
            "A" : "A2",
            "B" : "B2",
            "C" : 200
        },
        {
            "A" : "A3",
            "B" : "B3",
            "C" : 300
        }
    ]
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tìm theo id với mgo

  2. mongoDB:Trình điều khiển C # V2 Cách cập nhật mục trong bộ sưu tập lồng nhau

  3. Kết nối / ngắt kết nối MongoDB C # (Trình điều khiển chính thức)

  4. Làm cách nào để đặt tài liệu _id thành db trong Mongoose?

  5. Nhận danh sách tất cả cơ sở dữ liệu với Mongoose