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

pencocokan array mongodb

Menarik..Masalahnya adalah.. $in dan operator $or diterapkan pada elemen larik yang Anda bandingkan dengan setiap dokumen dalam koleksi, bukan pada elemen larik dalam dokumen..Untuk meringkas pertanyaan Anda:Anda ingin itu cocok, jika salah satu dokumen dalam koleksi kebetulan merupakan subset dari array yang dilewati. Saya tidak dapat memikirkan cara untuk melakukan ini kecuali Anda menukar input dan output Anda. Maksud saya adalah..Mari kita ambil input pertama Anda:

db.test.find( {a: [1,2,3,4]} );

Pertimbangkan untuk memasukkan ini ke dalam koleksi sementara say,temp as:

db.temp.save( {a: [1,2,3,4]} );

Sekarang ulangi setiap dokumen dalam kumpulan pengujian dan 'temukan' dalam temp, dengan operator $all untuk memastikan dokumen tersebut benar-benar terkandung, yaitu, lakukan sesuatu seperti ini:

foreach(doc in test)
{ db.temp.find( { a: { $all: doc.a } } ); }


Ini jelas merupakan solusi! Saya tidak yakin apakah saya kehilangan operator lain yang dapat melakukan pekerjaan ini.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb dump dan pipa ke nama db lain

  2. Kesalahan pemeran JSON.NET saat membuat serial Mongo ObjectId

  3. NodeJS Mongo - Mongoose - Nama koleksi dinamis

  4. Masukkan kinerja node-mongodb-native

  5. Cara menggunakan Indeks GeoSpasial MongoDB di C++