mongoose - Pertanyaan dengan mongodb untuk memadankan nilai rentetan dengan setiap elemen tatasusunan
巴扎黑
巴扎黑 2017-05-02 09:23:36
0
2
930

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.

巴扎黑
巴扎黑

membalas semua(2)
Peter_Zhu

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:

db.order.find({teamId: {$in: ['580493941a81901a6cabe9b1']}});

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan