Terdapat pertanyaan dokumen dan semua keputusan adalah seperti berikut:
db.order.find();
{ "_id" : ObjectId("58464c481dd68f2bcc8c280b"), "teamId" : "580493941a81901a6cabe9b1"},
{ "_id" : ObjectId("5848d4deffe1c81858b7648f"), "teamId" : "580493941a81901a6cabe9b1"},
{ "_id" : ObjectId("5848d557ee026d288000c922"), "teamId" : "581c33eb4d901f06f8ca4c65"}
Kini terdapat keperluan untuk menanyakan data yang sepadan dengan teamId dengan elemen dalam tatasusunan. Sebagai contoh, tatasusunan keadaan adalah seperti berikut:
const array = ['580493941a81901a6cabe9b1'];
Bagaimanakah saya harus menulis pernyataan pertanyaan Anda boleh menanyakan dua keping data berikut:
{ "_id" : ObjectId("58464c481dd68f2bcc8c280b"), "teamId" : "580493941a81901a6cabe9b1"},
{ "_id" : ObjectId("5848d4deffe1c81858b7648f"), "teamId" : "580493941a81901a6cabe9b1"},
Mohon pencerahan saya, terima kasih.
Nah, saya masih menyalahkan diri sendiri kerana malas.
Saya menyemak dokumen tadi, dan saya serta-merta tahu cara menyemaknya/memalukan
Siarkan pernyataan pertanyaan secara langsung:
Jika anda menghadapi masalah, semak dokumentasi dahulu.
Apabila saya mula-mula melihat masalah ini, saya fikir ia perlu dikendalikan menggunakan pengendali $in, saya fikir ia adalah masalah yang agak mudah.
Melihat soalan anda dengan teliti, data dalam tatasusunan ialah rentetan _id, saya tertanya-tanya sama ada terdapat ralat input dan sama ada perlu membandingkan nilai _id dan tatasusunan.
Sebelum perbandingan, rentetan dalam tatasusunan perlu ditukar kepada ObjectId.
untuk (i dalam arraySrc) {arrayTgt.push(ObjectId(ArraySrc[i]));}
Kemudian
db.order.find({_id : { $in : arrayTgt}})
Untuk rujukan.