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

$ elemM phù hợp với khác biệt

Đoán tests.device_serial là một mảng, đây là sai lầm của bạn:

 db.sessions.distinct("tests.device_serial", {"tests.device_serial" : {$ne: ""}})

Truy vấn trong lệnh riêng biệt của bạn đang lọc tài liệu trong đó mảng 'kiểm tra' chứa một trường có tên device_serial với giá trị là "" và không chỉ các trường trong mảng.

Để đạt được những gì bạn muốn, bạn có thể sử dụng khung tổng hợp, giải phóng mảng cho nhiều tài liệu, lọc và nhóm theo null bằng lệnh $ addToSet để nhận các giá trị riêng biệt.

Đây là truy vấn:

db.sessions.aggregate(
    [
        {
            $unwind: {
                path : "$tests"
            }
        },
        {
            $match: {
            "tests.device_serial":{$ne:""}
            }
        },
        {
            $group: {
              "_id":null,
                "device_serials":{$addToSet:"$tests.device_serial"}
            }
        },
    ]
);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để lưu dữ liệu của tôi trên mongoDB bằng cách sử dụng expressjs?

  2. MongoNetworkError:không kết nối được với máy chủ [localhost:27017] trong lần kết nối đầu tiên [MongoNetworkError:connect ECONNREFUSED 127.0.0.1:27017]

  3. Các câu hỏi phỏng vấn MongoDB phổ biến

  4. Mongodb 2.4 2dsphere truy vấn rất chậm (sử dụng $ geoIntersects)?

  5. MongoDB PHP UTF-8 sự cố