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

Làm cách nào để truy xuất tất cả các phần tử phù hợp có bên trong mảng trong Mongo DB?

Như JohnnyHK đã nói, câu trả lời trong MongoDB:chọn các phần tử phù hợp của bộ sưu tập phụ giải thích nó tốt.

Trong trường hợp của bạn, tổng thể sẽ giống như sau:

(lưu ý:trận đấu đầu tiên không hoàn toàn cần thiết, nhưng nó giúp ích về hiệu suất (có thể sử dụng chỉ mục) và sử dụng bộ nhớ ($ unwind trên một bộ giới hạn)

> db.xx.aggregate([
...      // find the relevant documents in the collection
...      // uses index, if defined on documents.x
...      { $match: { documents: { $elemMatch: { "x": 1 } } } }, 
...      // flatten array documennts
...      { $unwind : "$documents" },
...      // match for elements, "documents" is no longer an array
...      { $match: { "documents.x" : 1 } },
...      // re-create documents array
...      { $group : { _id : "$_id", documents : { $addToSet : "$documents" } }}
... ]);
{
    "result" : [
        {
            "_id" : ObjectId("515e2e6657a0887a97cc8d1a"),
            "documents" : [
                {
                    "x" : 1,
                    "y" : 3
                },
                {
                    "x" : 1,
                    "y" : 2
                }
            ]
        }
    ],
    "ok" : 1
}

Để biết thêm thông tin về tổng hợp (), hãy xem http://docs.mongodb.org/manual / ứng dụng / tổng hợp /




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MapReduce sự cố

  2. Truy vấn danh sách tất cả các trường riêng biệt trong bộ sưu tập MongoDB

  3. Mapreduce trong trình điều khiển gốc ruby ​​mongodb

  4. Làm cách nào để lưu trữ thời gian trong ngày trong MongoDB? Như một chuỗi? Cho năm / tháng / ngày tùy ý?

  5. Đặt cơ sở dữ liệu mặc định cho MongoDB shell