我正试图用另一个numberlong值更新其中一个集合中的一些numberlong类型值。以下是我的收藏结构:
{
"_id" : ObjectId("55e57337d4c6cf80e68b1fe3"),
"tenantId" : NumberLong(7),
"refId" : NumberLong(20),
"refIdentifierName" : "resourceInstanceId",
"config" : {
"contract" : {
"contractLength" : "12 months",
"startDate" : "2015-01-21T09:36:39+00:00",
"billingFrequency" : "monthly",
"margin" : 9,
"endDate" : "2016-01-21T09:36:39+00:00"
}
}
假设在这里,我试图用值7到8更新所有tenantid。
这是我正在使用的脚本:
var cursor = db.resourceInstanceConfiguration.find();
while (cursor.hasNext()) {
var x = cursor.next();
x['tenantId'] = x['tenantId'].replace('7','8');
db.resourceInstanceConfiguration.update({_id : x._id}, x);
}
获取错误:
TypeError: Object NumberLong(6) has no method 'replace'
最佳答案
您可以使用以下查询来实现此目的:
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
db.collectionName.update({<field>:<value>},{$set:{<field>:<New Value>}},<upsert>,<multi>);
关于mongodb - 在mongodb中查找并替换NumberLong类型字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32473358/