首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从字符串值中删除空格(前导和尾随)

从字符串值中删除空格(前导和尾随)
EN

Stack Overflow用户
提问于 2014-05-28 13:56:28
回答 2查看 25K关注 0票数 6

我已经使用mongoimport在mongo中导入了一个csv文件,我想从字符串值中删除前导空格和尾随空格。

是否可以直接在mongo中对所有集合使用trim函数,或者我是否需要为此编写脚本?

我的集合包含如下元素:

代码语言:javascript
复制
{
  "_id" : ObjectId("53857680f7b2eb611e843a32"),
  "category" : "Financial & Legal Services "
}

我想对所有的集合应用trim函数,这样"category"就不会包含任何前导和尾随空格。

EN

回答 2

Stack Overflow用户

发布于 2015-01-04 23:25:55

对Neil for bulk operations api的回答进行了小小的更正

它是

代码语言:javascript
复制
initializeOrderedBulkOp

代码语言:javascript
复制
initializeBulkOrderedOp

你也错过了

代码语言:javascript
复制
counter++;

在forEach中,所以总结一下

代码语言:javascript
复制
var counter = 1;
var bulk = db.collection.initializeOrderedBulkOp();
db.collection.find({ "category": /^\s+|\s+$/ },{ "category": 1}).forEach(
    function(doc) {
        bulk.find({ "_id": doc._id }).update({
            "$set": { "category": doc.category.trim() }
        });

        if ( counter % 1000 == 0 ) {
            bulk.execute();
            counter = 1;
        }
        counter++;
    }
);

if ( counter > 1 )
    bulk.execute();

注意:我没有足够的名气来评论,因此添加了一个答案

票数 8
EN

Stack Overflow用户

发布于 2017-10-04 07:36:01

您可以在游标方法中执行MongoDB update命令中的javascript:

代码语言:javascript
复制
db.collection.find({},{ "category": 1 }).forEach(function(doc) {
  db.collection.update(
    { "_id": doc._id },
    { "$set": { "category": doc.category.trim() } }
  );
})

如果您有大量的记录,并且需要批量处理,那么您可能需要查看此处的其他答案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23903785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档