> db.data.update({'name': 'zero'}, {'$set': {'value': 0}})
> db.data.findOne({'name': 'zero})
{'name': 'zero', 'value': 0.0}
Mongo'nun bir tamsayı eklemesini nasıl sağlarım?
teşekkür ederim
> db.data.update({'name': 'zero'}, {'$set': {'value': 0}})
> db.data.findOne({'name': 'zero})
{'name': 'zero', 'value': 0.0}
Mongo'nun bir tamsayı eklemesini nasıl sağlarım?
teşekkür ederim
Yanıtlar:
db.data.update({'name': 'zero'}, {'$set': {'value': NumberInt(0)}})
NumberLong'u da kullanabilirsiniz.
Biraz daha basit bir sözdizimi (en azından Robomongo'da) benim için çalıştı:
db.database.save({ Year : NumberInt(2015) });
Değer türü zaten çiftse, değeri $ set komutuyla güncelleştirmek NumberInt () veya NumberLong () işlevini kullanırken değer türünü double olarak int olarak değiştiremez. Bu nedenle, değer türünü değiştirmek için tüm kaydı güncellemesi gerekir.
var re = db.data.find({"name": "zero"})
re['value']=NumberInt(0)
db.data.update({"name": "zero"}, re)
$seten azından Mongo 4.2'de çalıştı, bu yüzden belki de bu bir hataydı.
Bu JavaScript'tir, bu yüzden 'değer'de sahip olduğunuz şey bir tamsayı veya kayan nokta olabilen bir Sayıdır. Ancak JavaScript'te gerçekten bir fark yok. Gönderen Öğrenme JavaScript :
Sayı Veri Türü
JavaScript'teki sayı veri türleri kayan nokta sayılarıdır, ancak kesirli bir bileşeni olabilir veya olmayabilir. Ondalık virgül veya kesirli bileşen yoksa, tamsayı olarak kabul edilir - –2 53 ila 2 53 aralığındaki taban-10 tam sayı .