cari

Rumah  >  Soal Jawab  >  teks badan

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

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

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

错误:

Cannot apply $inc modifier to non-number
高洛峰高洛峰2887 hari yang lalu738

membalas semua(1)saya akan balas

  • 怪我咯

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

    Saya tidak tahu jika anda telah salah faham dengan keperluan putera raja Adakah anda berharap untuk menambah medan baharu dengan nilai jenis ISODate?
    Jika ya, $inc tidak dimaksudkan untuk itu. $inc hanya boleh digunakan untuk menambah atau mengurangkan nilai angka, contohnya:
    Data asal:

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

    Operasi adalah seperti berikut:

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

    Hasilnya ialah:

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

    Jika anda ingin menambah medan baharu, anda boleh menggunakan $push, seperti yang dijelaskan dalam contoh di atas:

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

    Hasilnya ialah:

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

    balas
    0
  • Batalbalas