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

Tìm bản ghi MongoDB trong đó trường mảng không trống

Nếu bạn cũng có tài liệu không có khóa, bạn có thể sử dụng:

ME.find({ pictures: { $exists: true, $not: {$size: 0} } })

MongoDB không sử dụng chỉ mục nếu có liên quan đến $ size, vì vậy đây là một giải pháp tốt hơn:

ME.find({ pictures: { $exists: true, $ne: [] } })

Nếu thuộc tính của bạn có thể có các giá trị không hợp lệ (như null boolean hoặc những người khác), sau đó bạn thêm một séc bổ sung bằng cách sử dụng $types như được đề xuất trong câu trả lời này:

Với mongo> =3.2:

ME.find({ pictures: { $exists: true, $type: 'array', $ne: [] } })

Với mongo <3.2:

ME.find({ pictures: { $exists: true, $type: 4, $ne: [] } })

Kể từ bản phát hành MongoDB 2.6, bạn có thể so sánh với toán tử $gt nhưng có thể dẫn đến kết quả không mong muốn (bạn có thể tìm thấy lời giải thích riêng trong câu trả lời này):

ME.find({ pictures: { $gt: [] } })


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Triển khai MongoDB bằng Docker

  2. Sắp xếp một kết quả được đặt ngẫu nhiên trong mongo

  3. Tổng quan về MongoDB Atlas:Phần một

  4. Tại sao _id với ObjectID được thêm vào khi sử dụng $ push của MongoDB để thêm đối tượng mới vào một mảng?

  5. cơ sở dữ liệu node.js