嗨,我正在嘗試構建一個用戶可以互相關注的社交應用程式,我的用戶架構如下所示:
{
_id: ObjectId('62b6a1ad5bb65d5a1e2c0dcc'),
name: 'Admin',
username: 'Admin',
email: '[email protected]',
password: '$2b$10$qVWp8HZdId/cjVOXwiNLyeyv0jNo7BMFqFEKwNQniusazABp6s216',
profilePicture: '',
coverPicture: '',
followers: [
ObjectId('62b6abc96e3985aa5b2848b8'),
ObjectId('62b6abb96e3985aa5b2848b0'),
ObjectId('62b6abbf6e3985aa5b2848b2'),
],
following: [],
isAdmin: false,
createdAt: 2022-06-25T05:48:29.095Z,
updatedAt: 2022-06-25T07:45:33.290Z,
__v: 0,
}
發布架構
{
_id: ObjectId('62b6eaba03ca17b3eb642e24'),
userId: ObjectId('62b6a1ad5bb65d5a1e2c0dcc'),
description: 'one',
image:'https://firebasestorage.googleapis.com/v0......',
tags: [],
likes: [],
createdAt: '2022-06-25T11:00:10.108Z',
updatedAt: '2022-06-25T11:00:10.108Z',
__v: 0,
}
Followers、Following、likes 是 objectId 的陣列。 我想為用戶獲取時間線帖子,它包括該用戶的帖子和他的追隨者的帖子。我如何在 nodejs 服務器中不運行回圈來實作此結果。
uj5u.com熱心網友回復:
用于$lookup獲取匹配的帖子
結果將添加到欄位 my-post 和 follow-post
嘗試游樂場
db.user.aggregate(
[{
$lookup: {
from: 'post',
localField: '_id',
foreignField: 'userId',
as: 'my-post'
}
}, {
$lookup: {
from: 'post',
localField: 'followers',
foreignField: 'userId',
as: 'follow-post'
}
}]
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/495734.html
標籤:节点.js 数组 mongodb 猫鼬 mongodb查询
上一篇:出現錯誤:querySrvECONNREFUSED_mongodb._tcp.auctiondbcluster.s6rzg.mongodb.net。當我離線時嘗試連接到localhost
下一篇:貓鼬沒有填充相關陣列
