如何将Mongo字段值保存为Long?

时间:2016-04-27 15:17:32

标签: mongodb

db.getCollection('someCollection').update({"SomeNumberField": 1},    
   { $set:
      {
        SomeNumberField: NumberLong(1)
      }
   }, { multi: true })

这可以节省" SomeNumberField"作为一个双。我检查了docs, and they recommend "NumberInt",我认为它应该是一个int32,但这也不起作用。

我很惊讶我无法找到相关信息。

编辑:我试过了:

SomeNumberField: NumberLong("1")

在答案here中,仍然无效。

2 个答案:

答案 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 })