在我的Mongo数据库中,我有两个集合-speakers
和speeches
,并且我可以使用以下代码块将它们“加入”(得到演讲者的讲话):
// I've already found the 'speaker' in the database
db.collection('speakers').aggregate([{
$match: { "uuid": speaker.uuid } },
{ $lookup: {
from: "speeches",
localField: "uuid",
foreignField: "speaker_id",
as: "speeches" } }
]).toArray();
它运作良好,但是我想按date
字段或title
字段对语音数组进行排序,但是我似乎没有做任何事情。我在这里看到的所有示例都没有完成我需要他们做的事情。我尝试在{ $sort: { "speech.title": -1 } }
块之后添加$lookup
,但没有执行任何操作。这有可能吗?
答案 0 :(得分:1)
您可以使用以下$lookup
管道版本(可从3.6获得)。
{"$lookup":{
"from":"speeches",
"let":{"uuid":"$uuid"},
"pipeline":[
{"$match":{"$expr":{"$eq":["$$uuid","$speaker_id"]}}},
{"$sort":{"title":1}}
],
"as":"speeches"
}}