Mongodb 批量删除集合中的特殊信件
编辑: 假设我有一个Mongo数据库和一个集合,我们称之为产品。在这个集合中,我想从某个字段的所有条目中删除所有特殊字符,比如说所有点,比如说价格。 此外,我将如何替换所有对象的信息条目(例如) 我如何通过mongo shell实现这一点Mongodb 批量删除集合中的特殊信件,mongodb,mongodb-query,Mongodb,Mongodb Query,编辑: 假设我有一个Mongo数据库和一个集合,我们称之为产品。在这个集合中,我想从某个字段的所有条目中删除所有特殊字符,比如说所有点,比如说价格。 此外,我将如何替换所有对象的信息条目(例如) 我如何通过mongo shell实现这一点 Example: _id: 123324erwerew name: 'moisture cream' price: 30.00 info: 'Good Cream' _id: 343324erwerew name: 'moisture cream two'
Example:
_id: 123324erwerew
name: 'moisture cream'
price: 30.00
info: 'Good Cream'
_id: 343324erwerew
name: 'moisture cream two'
price: 40.00
info: 'Good Cream also'
假设这两个选项中的信息都应该是:“有史以来最好的奶油”并且两个价格中的点都应该消失如果您的价格像
30.11
和40.11
那么下面的管道更新命令将使价格成为“3011”
和“4011”
,并将信息设置为有史以来最好的奶油
db.products.updateMany({}, [
{
$set: {
price: {
$reduce: {
input: { $split: [{ $toString: "$price" }, "."] },
initialValue: "",
in: { $concat: ["$$value", "$$this"] }
}
}
}
},
{
$set: {
info: "best cream ever"
}
}
])
有关价格更新的说明:
在mongodb v4.4中,如果您的价格类似于
30.11
和40.11
,则使用操作符可以大大简化此操作,下面的管道更新命令将使价格“3011”
和“4011”
以及将信息设置为有史以来最好的奶油
db.products.updateMany({}, [
{
$set: {
price: {
$reduce: {
input: { $split: [{ $toString: "$price" }, "."] },
initialValue: "",
in: { $concat: ["$$value", "$$this"] }
}
}
}
},
{
$set: {
info: "best cream ever"
}
}
])
有关价格更新的说明:
在mongodb v4.4中,这在操作员的帮助下大大简化了请提供一个示例文档。使用示例和稍微不同的问题更新了价格字段的数据类型是什么?是NumberDecimal,您正在尝试删除小数点吗?字段
price
是字符串还是数字。如果是数字,那么数字类型是什么(double.float.NumberDecimal)?如果price
值与price:30.00
类似,则类型必须为string或。请提供示例文档。使用示例和稍微不同的问题更新price字段的数据类型是什么?是NumberDecimal,您正在尝试删除小数点吗?字段price
是字符串还是数字。如果是数字,那么数字类型是什么(double.float.NumberDecimal)?如果price
值与price:30.00
类似,则类型必须为string或。