如何解决MongoDB updateMany使用equals设置一个布尔字段
我的模型中有一个IsDefault
字段,我只想对一个文档将其设置为true
,对其他文档将其设置为false
。在单个查询中有可能吗?我尝试过
{ $set: { IsDefault: {$eq: [_id,id ]}}}
{ $set: { IsDefault: { $cond: { if: { $eq: [$_id,id] },then: true,else: false } } } }
,但没有用。我也尝试传递一个lambda表达式,但它也不会建立。知道这是否可行,还是我需要使用两个单独的updateOne语句将当前的IsDefault设置为false,将新的IsDefault设置为true?
解决方法
您可以通过以下聚合管道更新来实现:
jpegBuf = tjAlloc(width*height*3/2);
这是使用mongodb.entities的完整示例:
db.collection.updateMany(
{},[
{
$set: {
IsDefault: {
$eq: ["$_id",ObjectId("5f65c2fcaf29d00898173d03")]
}
}
}
])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。