Mongo中含千位分隔符string去除,
时间: 2023-12-07 19:03:53 浏览: 140
可以使用MongoDB的聚合管道中的$replaceOne操作符和正则表达式来去除千位分隔符。
假设有一个名为"amount"的字段,它包含千位分隔符,如下所示:
```
{ "amount": "1,234,567.89" }
```
可以使用以下聚合管道操作符将其转换为数字类型,并去除千位分隔符:
```
db.collection.aggregate([
{
$project: {
amount: {
$toDouble: {
$replaceOne: {
input: "$amount",
find: ",",
replacement: ""
}
}
}
}
}
])
```
这将返回以下结果:
```
{ "amount": 1234567.89 }
```
相关问题
Mongo中string去除千位分隔符
MongoDB中没有内置的函数去除千位分隔符,但可以使用正则表达式来实现。
假设我们有一个字符串 `'1,234,567.89'`,想要去除千位分隔符,可以使用以下代码:
```
db.collection.aggregate([
{
$addFields: {
numString: { $toString: "$num" }, // 将数字字段转换为字符串
numNoComma: { $replaceAll: { input: "$numString", find: ",", replacement: "" } } // 去除千位分隔符
}
}
])
```
这里使用了MongoDB的聚合管道操作符`$addFields`,将原有的数字字段转换为字符串,并将字符串中的逗号替换为空字符串。最终会得到一个新的字段`numNoComma`,其值为`'1234567.89'`。
注意,如果数字字符串中存在小数点,需要先处理小数点前面的部分,再处理小数点后面的部分。
Mongo中含千位分隔符string转double
在Mongo中,可以使用以下方法将含千位分隔符的字符串转换为double类型:
1. 使用$replaceOne操作符替换千位分隔符为空格,然后使用$toDouble操作符将结果转换为double类型。
例如,如果字段名为"number",其中包含千位分隔符,可以执行以下查询:
```javascript
db.collection.aggregate([
{
$project: {
number: {
$toDouble: {
$replaceOne: {
input: "$number",
find: ",",
replacement: " "
}
}
}
}
}
])
```
2. 使用$regexReplace操作符替换千位分隔符为空字符串,然后使用$toDouble操作符将结果转换为double类型。
例如,如果字段名为"number",其中包含千位分隔符,可以执行以下查询:
```javascript
db.collection.aggregate([
{
$project: {
number: {
$toDouble: {
$regexReplace: {
input: "$number",
regex: ",",
replacement: ""
}
}
}
}
}
])
```
无论哪种方法,都可以将含千位分隔符的字符串转换为double类型。
阅读全文