我有一个“朋友”集合:
{ "user": "user1", "approved": "user2" },
{ "user": "user1", "approved": "user3" },
{ "user": "user2", "approved": "user4" }
和一个集合“内容”:
{ "user": "user3", "content": "abc" },
{ "user": "user3", "content": "def" },
{ "user": "user4", "content": "ghi" },
{ "user": "user2", "content": "jkl" }
然后我有一个朋友流,我想在其中显示我朋友的内容.. 还有我自己的(假设我是 user2)
我写了一个聚合来查找内容集合,用户的内容是什么
{
"$match": {
"approved": {
"$var": "user"
}
}
},
{
"$lookup": {
"from": "content",
"localField": "approved",
"foreignField": "user",
"as": "friendscontent"
}
},
{
"$unwind": "$friendcontent"
},
但是现在要解决这个问题,我的问题是我没有将自己存储在朋友集合中..而且我也不想这样做,因为我认为这没有意义
是否可以在管道中创建一个虚假的条目,像这样添加自己
{ "user": "user2", "approved": "user2" }
在到达查找之前?
我的预期结果是:
{ "user": "user4", "content": "ghi" },
{ "user": "user2", "content": "jkl" }