搜索

首页  >  问答  >  正文

在 MongoDB 中如何原子地增加一个 ISODate 类型的值

直接使用 $inc 似乎不可以:

{$inc: {"time": 1}}

错误:

Cannot apply $inc modifier to non-number
高洛峰高洛峰2763 天前664

全部回复(1)我来回复

  • 怪我咯

    怪我咯2017-04-24 09:11:55

    不知道有没有误解王子的需求,你是希望能新增一个 ISODate 类型值的字段吗?
    如果是的话,$inc 并不是用来做这个的。$inc 只能用来对数字类型的值进行增减操作,举例如下:
    原有数据:

    { "_id" : ObjectId("537eaa530989f15b7f41cedf"), "i" : 1 }
    

    操作如下:

    db.test.update({ i : 1 },{ $inc : { i : 2 }})
    

    结果为:

    { "_id" : ObjectId("537eaa530989f15b7f41cedf"), "i" : 3 }
    

    如果是希望新增一个字段,可以使用 $push,同样以上例说明:

    db.test.update({ i : 3 },{ $push : {'time' : new ISODate("2014-05-23")}})
    

    结果为:

    { "_id" : ObjectId("537eaa530989f15b7f41cedf"), "i" : 3, "time" : [  ISODate("2014-05-23T00:00:00Z") ] }
    

    回复
    0
  • 取消回复