将列表元素插入MongoDB中的文档

时间:2014-01-01 05:04:40

标签: mongodb

我想在文档中插入一个新元素。我做了以下事情:

l=[78.0, 97.5, 97.5]
new_one   = {"my_list" : l}
insert_id = dbh.users.update({"p_id":'100'}, {"$push":new_one}, upsert=False, safe=True)

然后,当我检索此列表时,我做了:

docs = dbh.users.find_one({"p_id": '100'})
print docs.get('my_list')

但是,我有一个嵌套列表,如下所示

>> [[78.0, 97.5, 97.5]]

我如何获得列表,而不是嵌套?

1 个答案:

答案 0 :(得分:1)

而不是推动,你只想设置。

通过推送,您要将列表添加到列表中,这就是它嵌套的原因。

只需将$push替换为$set

> l=[78.0, 97.5, 97.5]
[ 78, 97.5, 97.5 ]
> new_one   = {"my_list" : l}
> insert_id = db.users.update({"p_id":'100'}, {"$set":new_one}, upsert=true, safe=true)
> db.users.find({})
{ "_id" : ObjectId("52c3a5682420d55400369a59"), "my_list" : [ 78, 97.5, 97.5 ], "p_id" : "100" }