Anda dapat menggunakan kombinasi findOne()
dan find()
metode kursor bersama dengan JavaScript asli map
metode untuk pertama-tama mendapatkan id tim untuk pengguna tertentu (yang akan menjadi larik string), kemudian gunakan fungsi peta untuk memetakan larik id string tim ke larik ObjectId, dan akhirnya menanyakan koleksi tim dengan larik yang dihasilkan sebagai $in
ekspresi operator:
var teams = db.users.findOne({"name": "User1"}).teams;
var obj_ids = teams.map(function (item){ return ObjectId(item)});
db.teams.find({ "_id": { "$in": obj_ids } });
Keluaran :
/* 0 */
{
"_id" : ObjectId("5527a9493ebbe2452666c238"),
"name" : "Team 1"
}
/* 1 */
{
"_id" : ObjectId("5527b1be3371e3a827fa602c"),
"name" : "Team 2"
}