db.setting.aggregate([
{
$match: {
status: true,
deleted_at: 0,
_id: {
$in: ids
}
}
},
{
$lookup: {
from: "admin",
localField: "_id",
foreignField: "admin_id",
as: "data"
}
},
{
$match: {
"data.createdAt": {
$gte: new Date("2020-01-01")
}
}
},
])
我得到一个值,但甚至期望多个数据大于等于2020年1月1日。如何解决它,请指导谢谢
您必须在查找后平移结果才能执行$match
。
db.setting.aggregate([
{
$match: {
status: true,
deleted_at: 0,
_id: {
$in: ids
}
}
},
{
$lookup: {
from: "admin",
localField: "_id",
foreignField: "admin_id",
as: "data"
}
},
{ $unwind: "$data"}
{
$match: {
"data.createdAt": {
$gte: new Date("2020-01-01")
}
}
},
{
$group: {
_id: "$_id",
status: { "$first": "$status" },
deleted_at: { "$first": "$deleted_at" }, //You can project more
data: { "$push": "$data" }
}
}
])