Başlık, her şeyi açıklıyor. Bir belge eşleşen alana göre eşleşen herhangi bir dış belgeye neden olmazsa nasıl olur, nasıl olur da boru hattının sonuç kümesine dahil edilmez?
Mongo 3.2'deki yeni toplayıcıları test ediyorum ve ilk önce açarak dizilmiş bir dizi araması gerçekleştirecek ve daha sonra belgeleri yeniden gruplandıracak kadar ileri gittim. Tüm sahip olduğum sonuçların, $lookup
ölçütlerini karşılamayan tüm yerel belgeleri içermesidir; bu, "sol dış birleştirmenin" standart tanımı olduğunu düşündüğüm şeydir. İşte
profile.universities
dizi olan bir
user
var ise
db.users.aggregate([
{
$unwind: "$profile",
$unwind: "$profile.universities"
},
{
$lookup: {
from: "universities",
localField: "profile.universities._id",
foreignField: "_id",
as: "profile.universities"
}
},
{
$group: {
_id: "$_id",
universities: {
$addToSet: "$profile.universities"
}
}
}
]).pretty()
, o zaman ben ne olursa olsun herhangi bir eşleşme dönen $lookup
kümesi sonucu dahil edilmesi gerekir, ancak öyle değil. Bunu nasıl yapabilirim ve Mongo'nun bu şekilde çalışması için $lookup
'u neden yaptın?
Şaşırtıcı:
Eğerprofile.universities
boş bir dizi olsa biletrue
onunpreserveNullAndEmptyArrays
seçeneği ayarlayabilirsiniz, çözülür belgeleri korumak için. Çok teşekkür ederim!! –