Bây giờ bạn có thể làm điều đó trong Mongo 3.2 bằng cách sử dụng $lookup
$lookup
có bốn đối số
from
:Chỉ định tập hợp trong cùng một cơ sở dữ liệu để thực hiện phép nối với. Không thể chia nhỏ tập tin từ bộ sưu tập.
localField
:Chỉ định trường từ đầu vào tài liệu đến giai đoạn tra cứu $. $ lookup thực hiện đối sánh bình đẳng trên localField với ForeignField từ các tài liệu của from collection.
foreignField
:Chỉ định trường từ các tài liệu trong bộ sưu tập từ.
as
:Chỉ định tên của trường mảng mới để thêm vào tài liệu đầu vào. Trường mảng mới chứa các tài liệu phù hợp từ bộ sưu tập từ.
db.Foo.aggregate(
{$unwind: "$bars"},
{$lookup: {
from:"bar",
localField: "bars",
foreignField: "_id",
as: "bar"
}},
{$match: {
"bar.testprop": true
}}
)