MongoDB Java API查询UPDATE包含单词

时间:2018-04-07 14:45:45

标签: mongodb

我有问题。我需要在字段的值中包含一个单词:" name"。 例如:

    {name : "Apple inc."}

我想添加"公司"。

这个词
{name : "Company Apple inc."}

但是,我不能。我的问题在哪里?

collectionCOMPANIES.updateMany(

        new Document("$where", "true")
            , 

            new Document("$set", new Document("name","Company + $name")
                    ));

如果我这样做,请返回:

{name : "Company + $name"}

感谢。

*******更新解决方案******

对于最终代码在java中,这是:

collectionCOMPANIES.find().forEach(new Block<Document>() {
        public void apply(final Document document) {
            final Document DocuNew = new Document();
            DocuNew.putAll(document);



            DocuNew.put("name", "Company " + document.get("name")); 


            newcollection.insertOne(DocuNew);

        }
    });

1 个答案:

答案 0 :(得分:0)

试试这个。

db.collectionCOMPANIES.find().snapshot().forEach( function (doc) {
doc.name = "Company " + doc.name; 
db.collectionCOMPANIES.save(doc); 
});

为此,我使用的是mongodb提供的snapshot。你可以阅读更多相关信息here