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

Chuyển đổi sơ đồ bàn phím thành vectơ bằng cách sử dụng khung MongoDB

Như @Philipp được đề cập đúng trong nhận xét của anh ấy

Tuy nhiên, nếu bạn biết trước khóa là gì thì bạn có thể sử dụng các toán tử tổng hợp $ chữ , $addToSet $setUnion để có được kết quả mong muốn. Quy trình tổng hợp sẽ giống như sau:

db.collection.aggregate([
    {
        "$project": {

            "attrs.A1.key": { "$literal": "A1" },
            "attrs.A1.type": "$attrs.A1.type",
            "attrs.A1.value": "$attrs.A1.value",
            "attrs.A2.key": { "$literal": "A2" },
            "attrs.A2.type": "$attrs.A2.type",
            "attrs.A2.value": "$attrs.A2.value"
        }
    },
    {
        "$group": {
            "_id": "$_id",
            "A1": { "$addToSet": "$attrs.A1" },
            "A2": { "$addToSet": "$attrs.A2" }
        }
    },
    {
        "$project": {
            "attrs": {
                "$setUnion": [ "$A1", "$A2" ]
            }
        }
    }
])

Kết quả :

/* 0 */
{
    "result" : [ 
        {
            "_id" : ObjectId("55361320180e849972938fea"),
            "attrs" : [ 
                {
                    "type" : "T1",
                    "value" : "13",
                    "key" : "A1"
                }, 
                {
                    "type" : "T2",
                    "value" : "14",
                    "key" : "A2"
                }
            ]
        }
    ],
    "ok" : 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Geonear sắp xếp theo khoảng cách và thời gian

  2. So sánh ngày tháng trong Mongodb với trình điều khiển C # LINQ

  3. Làm cách nào để xem hoặc sửa đổi các tùy chọn đối chiếu được đặt trên bộ sưu tập MongoDB?

  4. Truy vấn Mongoose / mongoDB tham gia .. nhưng tôi đến từ nền sql

  5. Có cách nào đơn giản để xuất dữ liệu từ ứng dụng đã triển khai sao băng không?