我可以那样做吗?这是我的查询。
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”的所有对象。我尝试以这种方式进行操作,但它给出了空数组。
当您在中放置多个条件时$match
,$and
默认情况下会采用它,它将尝试匹配所有给定条件,并仅返回所有条件都满足的那些文档。
但是从您的问题来看,您似乎需要找到地址from
在to
字段中或字段中的所有文档。
您可以$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] 删除。
我来说两句