MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mongodb $in terhadap bidang objek array alih-alih objek array

Anda perlu mengekstrak bidang "lokasi" dari larik input Anda dan memasukkannya ke $in :

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

Untuk referensi di sini saya akan menulis ulang pertanyaan Anda untuk Anda:

Saya memiliki koleksi yang berisi dokumen seperti ini:

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

Apa yang saya miliki adalah array input yang didefinisikan seperti ini:

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

Sekarang saya ingin menulis kueri untuk menemukan semua dokumen yang cocok dengan bidang "lokasi" dalam larik yang saya miliki untuk input.

Bagaimana saya melakukannya?

Saya sudah mencoba:

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

Tapi itu tidak cocok.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:permintaan oleh @DBRef

  2. Bagaimana cara menjatuhkan database MongoDB dari baris perintah?

  3. MongoDB :Kerangka kerja agregasi :Dapatkan dokumen bertanggal terakhir per ID pengelompokan

  4. MongoDB Tidak dapat menemukan entri dengan menentukan ts.t(ts adalah tipe Timestamp)

  5. Bagaimana saya bisa menginstal dua versi mongodb secara paralel di Ubuntu 12.04?