2017-05-31 118 views
0

我是为了插入到我的数据库适当的价格使用MongoDB的3.4 ..的Python - Pymongo MongoDB的3.4 - NumberDecimal

据:

https://github.com/mongodb/specifications/blob/master/source/bson-decimal128/decimal128.rst#reading-from-extended-json 

我在Python代码中使用这样的:

'credits': {'$numberDecimal': Decimal128('9.99')}, 

但抛出:

bson.errors.InvalidDocument: key '$numberDecimal' must not start with '$' 

那么使用python在mongodb中插入numberdecimal的正确语法是什么?

感谢和问候

回答

-1

您所提供的链接告诉你有关从扩展JSON阅读。如果您想将它插入一个小数,你应该只使用:

{ 'credits': '{0:.2f}'.format(9.99) } 

'{0:.2f}'.format(9.99)部分将格式化您传递(在这种情况下9.99)的数量,包括每次2位小数。所以'{0:.2f}'.format(9)应该在你的数据库中产生9.00。

+0

你的语法同样适用于9.99 ...但我总是需要它插入一个双,也为“9”和“9.00”,你知道吗? –

+0

更新了我的答案...另外,为什么downvote? :) – errata

0

简单:

collection.insert_one({'credits': Decimal128('9.99')}) 

(其中“$ numberDecimal”语法是一个JSON字符串中表示十进制数,但你不使用JSON的。)