java mongoTemplate操作 Aggregation中添加addFields
mongoTemplate操作mongodb真是各种坑,springboot官方文档上给到的案例不满足实际的需求
场景复现
现在有条mongodb的sql是这样的,文档wallpaper的 _id
关联文档wallpaper_get_success的 wallpaper_id
进行查询。
db.wallpaper.aggregate([
{
$addFields: {
"_id": {
"$toString": "$_id"
}
}
},
{
"$lookup": {
"from": "wallpaper_get_success",
"localField": "_id",
"foreignField": "wallpaper_id",
"as": "success_id"
}
},
{
"$match": {
"success_id": {
"$ne": []
}
}
},
{
"$sample": {
"size": 5
}
}
])
然后呢,下面这一节是必不可少的,因为有这个问题: mongodb连接查询,localField使用_id进行匹配不生效
{
$addFields: {
"_id": {
"$toString": "$_id"
}
}
}