db.getCollection('someCollection').update({"SomeNumberField": 1},
{ $set:
{
SomeNumberField: NumberLong(1)
}
}, { multi: true })
这可以节省" SomeNumberField"作为一个双。我检查了docs, and they recommend "NumberInt",我认为它应该是一个int32,但这也不起作用。
我很惊讶我无法找到相关信息。
编辑:我试过了:
SomeNumberField: NumberLong("1")
在答案here中,仍然无效。
答案 0 :(得分:0)
NumberLong()有效。传入一个字符串arg工作。我尝试了下面运行的查询
db.test.insert({long: NumberLong("12345678910")});
您是否可以发布运行查询时遇到的错误。
答案 1 :(得分:0)
可能是我第一次回答自己的问题,但这很荒谬;您需要先删除该字段,然后进行设置,以便:
//Delete your double field - make sure you can identify the records you deleted from later though
db.getCollection('someCollection')
.update({"SomeOtherFieldUniquerlyIdentifyingItemsToUpdate": "the value you are looking for"},
{$unset: {SomeNumberField:1}}, {multi: true})
//Create a NEW field with the int64 value you want
db.getCollection('someCollection').update({"SomeOtherFieldUniquerlyIdentifyingItemsToUpdate": "someValue"},
{ $set:
{
SomeNumberField: NumberLong(1)
}
}, { multi: true })