我有问题。我需要在字段的值中包含一个单词:" 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);
}
});
答案 0 :(得分:0)
试试这个。
db.collectionCOMPANIES.find().snapshot().forEach( function (doc) {
doc.name = "Company " + doc.name;
db.collectionCOMPANIES.save(doc);
});
为此,我使用的是mongodb提供的snapshot
。你可以阅读更多相关信息here