试试这个方法
db={
"video": [
{
"_id": 1,
"mp4_url": "url1",
"liked_count": 2,
"quantity": 2
},
{
"_id": 2,
"mp4_url": "url2",
"liked_count": 3,
"quantity": 1
},
{
"_id": 3,
"mp4_url": "url2",
"liked_count": 3,
"quantity": 4
}
],
"User": [
{
"_id": 1,
"username": "almonds",
"password": "pwd",
"Likedvideos": [
"aaa",
"ffff"
]
},
{
"_id": 2,
"username": "almonds",
"password": "pwd",
"Likedvideos": [
"qqq",
"bbbb"
]
},
{
"_id": 3,
"username": "almonds",
"password": "pwd",
"Likedvideos": [
"ccc",
"ffff"
]
},
{
"_id": 4,
"username": "almonds",
"password": "pwd",
"Likedvideos": [
"bbbb",
"ffff"
]
},
{
"_id": 5,
"username": "almonds",
"password": "pwd",
"Likedvideos": [
"qqq",
"ffff"
]
},
{
"_id": 6
}
]
}
查询:
db.video.aggregate([
{
$match: {
_id: 1
}
},
{
"$lookup": {
"from": "User",
"localField": "_id",
"foreignField": "_id",
"as": "data"
},
},
{
$unwind: "$data"
},
{
$replaceRoot: {
newRoot: {
$mergeObjects: [
"$data",
"$$ROOT"
]
}
}
},
{
$project: {
data: 0
}
}
])
输出:
[
{
"Likedvideos": [
"aaa",
"ffff"
],
"_id": 1,
"liked_count": 2,
"mp4_url": "url1",
"password": "pwd",
"quantity": 2,
"username": "almonds"
}
]
mongoplayground