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

Mongodb $ trong chống lại một trường các đối tượng của mảng thay vì các đối tượng của mảng

Bạn cần trích xuất các trường "vị trí" từ mảng đầu vào của mình và cấp chúng vào $in :

var locs = arr.map(function(x) { return x.location } );
db.collection.find({ "fieldx": { "$in": locs } })

Để tham khảo ở đây tôi sẽ viết lại câu hỏi của bạn cho bạn:

Tôi có một bộ sưu tập chứa các tài liệu như sau:

{ "fieldx": "NY" }
{ "fieldx": "LA" }
{ "fieldx": "SF" }

Những gì tôi có là một mảng đầu vào được định nghĩa như thế này:

var arr = [
    { "name": "foo", "location": "NY"},
    { "name": "bar", "location": "LA"},
    { "name": "foobar", "location": "NZ"}
];

Bây giờ tôi muốn viết một truy vấn để tìm tất cả các tài liệu khớp với trường "vị trí" trong mảng mà tôi có để nhập.

Làm cách nào để làm điều đó?

Tôi đã thử:

db.collection.find({ "fieldx": { "$in": arr } })

Nhưng điều đó không phù hợp.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để buộc mongo lưu trữ các thành viên ở dạng chữ thường?

  2. Làm cách nào để thiết kế lược đồ MongoDB cho trình tổng hợp bài viết trên Twitter

  3. Làm cách nào để tăng tốc độ Chèn MongoDB / giây?

  4. mongoose findById hoạt động khi tôi sử dụng một chuỗi ký tự nhưng không hoạt động khi tôi tham chiếu đến thuộc tính của một Đối tượng

  5. Cập nhật hàng loạt mảng tài liệu phụ phù hợp trong Mongodb