Mongodb 仅当条件满足时才推
总之,我有一个集团条款:Mongodb 仅当条件满足时才推,mongodb,Mongodb,总之,我有一个集团条款: { $group: { _id: { town_id: "$_id.town" }, houses_data: { $push: { house_id: "$_id.house_id", price: { $divide: ["$sum", "$total"]
{ $group: {
_id: { town_id: "$_id.town" },
houses_data: { $push:
{ house_id: "$_id.house_id",
price: {
$divide: ["$sum", "$total"]
}
}
}
}
}
输出如下所示:
现在我想限制houses\u数据的输出
仅适用于房屋id>3
的条目
我想要这个输出:
在推送到数组之前,我尝试添加一个条件:
houses_data: {
if: {
"$_id.house_id": {$gt: 3}
},
then: {
$push:
{ house_id: "$_id.house_id",
price: {
$divide: ["$sum", "$total"]
}
}
}
}
但它不起作用!我错了什么?谢谢您可以尝试如下所示的$match
{
$match:{_id.house_id : {$gt: 3}},
$group: {
_id: { town_id: "$_id.town" },
houses_data: { $push:
{ house_id: "$_id.house_id",
price: {
$divide: ["$sum", "$total"]
}
}
}
}
}
嗯,
Sandepkumar Gupta您能发布您的样本文档吗?
houses_data: {
if: {
"$_id.house_id": {$gt: 3}
},
then: {
$push:
{ house_id: "$_id.house_id",
price: {
$divide: ["$sum", "$total"]
}
}
}
}
{
$match:{_id.house_id : {$gt: 3}},
$group: {
_id: { town_id: "$_id.town" },
houses_data: { $push:
{ house_id: "$_id.house_id",
price: {
$divide: ["$sum", "$total"]
}
}
}
}
}