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

Mongoose tìm tài liệu nếu mảng chứa một giá trị

Có một số cách để đạt được điều này. Cách đầu tiên là $elemMatch nhà điều hành:

const docs = await Documents.find({category: { $elemMatch: {$eq: 'yourCategory'} }});
// you may need to convert 'yourCategory' to ObjectId

Cái thứ hai là của $in hoặc $all toán tử:

const docs = await Documents.find({category: { $in: [yourCategory] }});

hoặc

const docs = await Documents.find({category: { $all: [yourCategory] }});
// you can give more categories with these two approaches 
//and again you may need to convert yourCategory to ObjectId

$in giống như OR và $all Thích và. Để biết thêm chi tiết, hãy xem liên kết này: https://docs.mongodb.com / manual / reference / operator / query / all /

Cái thứ ba là của aggregate() chức năng:

const docs = await Documents.aggregate([
    { $unwind: '$category' },
    { $match: { 'category': mongoose.Types.ObjectId(yourCategory) } }
]};

với tổng hợp (), bạn chỉ nhận được một id danh mục trong mảng danh mục của mình.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kho lưu trữ mùa xuân tự động truyền các thực thể với các loại lớp khác nhau

  2. cấu hình kích thước không gian cũ tối đa trong Nodejs

  3. MongoDB $ hàng tuầnUpdate # 65 (ngày 15 tháng 4 năm 2022):GDELT, Mongoose và Giờ Hackathon!

  4. Làm thế nào để xóa tầng bằng Mongoose loại bỏ phần mềm trung gian?

  5. Cách chọn dữ liệu với điều kiện nhất định