更新 MongoDb 集合中的文档,但没有完全匹配查询过滤器
Updating documents in MongoDb collection without an exact full match of the query filters
我正在尝试更新集合中的文档,根据 mongodb 语法,对于某些更新功能,我这样做:
Collection.updateMany(
{
filter1: 'filter1-val',
filter2: 'filter2-val',
filter3: 'filter3-val'
},
{ $set: { filed: 'value' } }
)
和 mongodb 对匹配查询的文档执行给定的更新操作。但是,它只会更新与查询中的每个过滤器匹配的文档。我的问题,我想知道的是,有没有一种方法可以对文档执行更新,只要它们至少匹配查询中的一个过滤器,而不是每个过滤器?所以基本上,一种宽松匹配的形式,只要文档满足其中一个过滤器,就应该更新它。
提前致谢;非常感谢任何帮助。
这里有一个mongo playground供大家参考。
您可以使用 $or
运算符。
Collection.updateMany(
{
$or: [
{ filter1: 'filter1-val' },
{ filter2: 'filter2-val' },
{ filter3: 'filter3-val' }
]
},
{ $set: { filed: 'value' } }
);
我正在尝试更新集合中的文档,根据 mongodb 语法,对于某些更新功能,我这样做:
Collection.updateMany(
{
filter1: 'filter1-val',
filter2: 'filter2-val',
filter3: 'filter3-val'
},
{ $set: { filed: 'value' } }
)
和 mongodb 对匹配查询的文档执行给定的更新操作。但是,它只会更新与查询中的每个过滤器匹配的文档。我的问题,我想知道的是,有没有一种方法可以对文档执行更新,只要它们至少匹配查询中的一个过滤器,而不是每个过滤器?所以基本上,一种宽松匹配的形式,只要文档满足其中一个过滤器,就应该更新它。
提前致谢;非常感谢任何帮助。
这里有一个mongo playground供大家参考。
您可以使用 $or
运算符。
Collection.updateMany(
{
$or: [
{ filter1: 'filter1-val' },
{ filter2: 'filter2-val' },
{ filter3: 'filter3-val' }
]
},
{ $set: { filed: 'value' } }
);