recherche

Maison  >  Questions et réponses  >  le corps du texte

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

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

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

错误:

Cannot apply $inc modifier to non-number
高洛峰高洛峰2847 Il y a quelques jours709

répondre à tous(1)je répondrai

  • 怪我咯

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

    Je ne sais pas si vous avez mal compris les besoins du prince. Espérez-vous ajouter un nouveau champ avec une valeur de type ISODate ?
    Si c'est le cas, $inc n'est pas fait pour ça. $inc ne peut être utilisé que pour augmenter ou diminuer des valeurs numériques, par exemple :
    Données originales :

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

    Le fonctionnement est le suivant :

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

    Le résultat est :

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

    Si vous souhaitez ajouter un nouveau champ, vous pouvez utiliser $push, comme expliqué dans l'exemple ci-dessus :

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

    Le résultat est :

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

    répondre
    0
  • Annulerrépondre