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

MongoDB - Lọc nội dung của Mảng nội bộ trong tập kết quả

Bạn có thể sử dụng khung tổng hợp của MongoDB .

Nếu bạn có một tài liệu trong bộ sưu tập của mình như;

{
 "URL": "www.stackoverflow.com",
 "TAGS": [
         {"NAME": "question", "VOTES": 3},
         {"NAME": "answer", "VOTES": 5},
         {"NAME": "problem", "VOTES": 2}
         ]
}

và bạn muốn lọc một số phần tử của mảng ra ngoài, bạn có thể sử dụng mẫu tổng hợp;

db.sof_table.aggregate
([
{$unwind:'$TAGS'}, 
{$match:{'TAGS.NAME':{$in:['answer','question']}}},
{$group:{_id:'$URL',TAGS:{$push:'$TAGS'}}}
])

Điều này sẽ dẫn đến;

{
    "result" : [
        {
            "_id" : "www.stackoverflow.com",
            "TAGS" : [
                {
                    "NAME" : "question",
                    "VOTES" : 3
                },
                {
                    "NAME" : "answer",
                    "VOTES" : 5
                }
            ]
        }
    ],
    "ok" : 1
}

như kết quả mong đợi của bạn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sắp xếp mảng đối tượng lồng nhau

  2. Liên kết &Tạo MongoDB tham gia bằng SQL:Phần 1

  3. Sắp xếp bằng cách sử dụng MongoEngine?

  4. phân trang mảng mongoDB

  5. MongoDB có thể sử dụng một chỉ mục khi kiểm tra sự tồn tại của một trường có toán tử $ tồn tại không?