У меня есть список из двух элементарных кортежей, где первый элемент - это строка (имя некоторого параметра), а второй элемент - это число с плавающей запятой (значение этого параметра).Например,
thelist = [('costperunit', 200), ('profit', 10000), ('fixedcost', 5000),
('numpeople':300)]
Таких кортежей гораздо больше, а имена в реальном случае разные.Я хочу добавить их в базу данных mongoDB как пары ключ: значение.Вот как я хочу добавить это.
db.collection.insert( {paramvalues: {'costperunit':200, 'profit':10000,
'fixedcost': 5000, 'numpeople': 300} } )
Один из способов сделать это:
dictform = dict(thelist)
db.collection.insert( {paramvalues: dictform} )
Это, однако, не обеспечивает порядок имен параметров и значений, какdict
меняет порядок.
Я пытался
from collections import OrderedDict
dictform = OrderedDict(thelist)
db.collection.insert( {paramvalues: dictform} )
При этом сохраняется первоначальный порядок имен и значений параметров, однако вставляются имена и значения параметров в виде списков.
Я очень новичок в mongoDB и пытаюсь выучить его.Есть ли хитрость в Python или в mongoDB, которая бы достигла того, чего я хочу?Причина, по которой я хочу получить значение ключа paramvalues
в базе данных Mongodb в качестве словаря (или объекта Javascript), заключается в том, что я могу затем фильтровать результаты, используя значение некоторого параметра.Например, я могу сделать:
db.collection.find( {'paramvalues.costperunit': 200} )
Если вы уверены, что нет способа сделать это, я был бы признателен, если бы вы сообщили мне.
Спасибо.