猫鼬聚合中$ match的多条件检查

法哈德

我可以那样做吗?这是我的查询。

const result = await transactionDbSchema.aggregate([
{
$unwind: "$transactions"
},
{
$replaceRoot: { newRoot: "$transactions" }
},
{ $match: { from: req.params.address,to: 
req.params.address} }
]);

我必须输入名称为“ from”和“ to”的数据库,然后收到地址“ req.params.address”,该地址可能在数据库中的“ from”或“ to”键中。我想搜索地址为“ req.params.address”的所有对象。我尝试以这种方式进行操作,但它给出了空数组。

拉维·香卡·巴尔蒂(Ravi Shankar Bharti)

当您在中放置多个条件时$match$and默认情况下会采用它,它将尝试匹配所有给定条件,并仅返回所有条件都满足的那些文档。

但是从您的问题来看,您似乎需要找到地址fromto字段字段中的所有文档

您可以$or用于此目的。

尝试这个:

const result = await transactionDbSchema.aggregate([
{
    $unwind: "$transactions"
},
{
    $replaceRoot: { newRoot: "$transactions" }
},
{   
    $match: { 
        $or : [{ from: req.params.address } ,
               { to:req.params.address}]
    }
}
]);

在此处阅读有关MongoDb $ or运算符的更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章