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

Mongodb Aggregation:Cách chỉ trả về các phần tử phù hợp của một mảng

Bạn có thể làm điều này với khung tổng hợp 2.2. Một cái gì đó như thế này;

db.books.runCommand("aggregate", {
    pipeline: [
        {   // find docs that contain Par*
            $match: { "indexTokens" : { "$regex" : "^Par" , "$options" : "i"}},
        },
        {   // create a doc with a single array elemm for each indexToken entry
            $unwind: "$indexTokens" 
        },
        {   // now produce a list of index tokens
            $group: {
                _id: "$indexTokens",
            },
        },
    ],
})

Hoặc điều này thậm chí có thể gần hơn với những gì bạn đang theo đuổi nếu bạn thực sự muốn mảng mà không có tài liệu;

db.books.runCommand("aggregate", {
    pipeline: [
        {   // find docs that contain Par*
            $match: { "indexTokens" : { "$regex" : "^Par" , "$options" : "i"}},
        },
        {   // create a doc with a single array elemm for each indexToken entry
            $unwind: "$indexTokens" 
        },
        {   // now throw out any unwind's that DON'T contain Par*
            $match: { "indexTokens": { "$regex": "^Par", "$options": "i" } },
        },
        {   // now produce the list of index tokens
            $group: {
                _id: null,
                indexTokens: { $push: "$indexTokens" },
            },
        },
    ],
})


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách sắp xếp tài liệu dựa trên độ dài của trường Mảng

  2. Lỗi nghiêm trọng - không tìm thấy lớp 'Mongo'

  3. Cập nhật MongoDB Nhiều có Điều kiện

  4. Mongodb java api:WriteResult # getN ()

  5. Giảm tốc độ MongoDb