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

Có thể làm phẳng truy vấn kết quả MongoDB không?

Bạn có thể sử dụng $project &$unwind &$group của tổng hợp khung để có được kết quả gần hơn với yêu cầu của bạn.

> db.countries.aggregate({$project:{a:'$data.country.neighbor.name'}},
                         {$unwind:'$a'},
                         {$unwind:'$a'},
                         {$group:{_id:'a',res:{$addToSet:'$a'}}})
  {
    "result" : [
        {
            "_id" : "a",
            "res" : [
                "Colombia",
                "Malaysia",
                "Switzerland",
                "Costa Rica",
                "Austria"
            ]
        }
    ],
    "ok" : 1
}

$unwind được sử dụng hai lần vì mảng tên được lồng vào sâu. Và nó sẽ chỉ hoạt động nếu neighbor thuộc tính là một mảng. Trong ví dụ của bạn, một trường láng giềng (Malaysia) không phải là một mảng



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Số lượng Mongodb so với findone

  2. Mongodb Tìm kiếm phím sharding rất chậm

  3. Tăng tốc độ tổng hợp MongoDB

  4. Mongo Shell - Bảng điều khiển / Nhật ký gỡ lỗi

  5. Hình ảnh không hiển thị từ đường dẫn hình ảnh động khi sử dụng gói html-pdf express