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

thay đổi tổng hợp mongodb tài liệu chính

Để tạo một đối tượng lồng nhau bằng khóa động, bạn cần sử dụng $ arrayToObject lấy một mảng khóa (k ) và các giá trị values (v ) như một tham số. Sau đó, bạn có thể sử dụng $ ReplaceRoot để quảng bá đối tượng mới đó lên cấp cơ sở. Bạn cần MongoDB 4.0 để chuyển đổi ObjectId thành string sử dụng $ toString nhà điều hành

db.col.aggregate([
    {
        $replaceRoot: {
            newRoot: {
                $arrayToObject: {
                    $let: {
                        vars: { data: [ { k: { $toString: "$_id" }, v: "$serie" } ] },
                        in: "$$data"
                    }
                }
            }
        }
    }
])

Kết quả đầu ra:

{
    "5b97f6cea37f8c96db70fea9" : {
            "_id" : ObjectId("5a55f988b6c9dd15b47faa2a"),
            "updatedAt" : ISODate("2018-02-09T13:22:54.521Z"),
            "createdAt" : ISODate("2018-01-10T11:31:20.978Z"),
            "deletar" : false,
            "infantil" : false,
            "status" : true,
            "turma" : [ ]
    }
}

Nếu bạn muốn loại bỏ _id trong kết quả của bạn, bạn có thể chỉ định các trường một cách rõ ràng trong v như:

v: { updatedAt: "$serie.updatedAt", createdAt: "$serie.createdAt", ... }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để thực hiện nhiều hơn / nhỏ hơn so với sử dụng MongoDB?

  2. return database_name ==':memory:' hoặc 'mode =memory' trong database_name TypeError:đối số kiểu 'WindowsPath' không thể lặp lại

  3. Làm cách nào để lấy dữ liệu từ Mongodb

  4. Cách cài đặt và cấu hình MongoDB trên Ubuntu

  5. Làm cách nào để giải quyết Không thiết lập được ổ cắm trong quá trình khởi động khi tôi chạy máy chủ mongodb?