在 MongoDB 中如何原子地增加一个 ISODate 类型的值
高洛峰
高洛峰 2017-04-24 09:09:55
0
1
731

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

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

错误:

Cannot apply $inc modifier to non-number
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(1)
刘奇

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") ] }
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan