将MongoDB中的数组设置为变量

8dtrkrch  于 2023-01-12  发布在  Go
关注(0)|答案(2)|浏览(152)

我正在使用MongoDB和pymongo创建一个数据库,并在其中存储数据。我有一个列表,我希望存储在数据库中。据我所知,我必须使用Python dict来实现这一点,它将作为一个数组存储在数据库中。现在,在存储它之后,要执行其他操作,如绘图,数学运算等等。我想把那个数组设置成一个变量。但是我找不到这样做的方法。简单地把那个数组设置成一个列表/数组变量就足够了。变量'results'不打印数组。

import pymongo
from pymongo import MongoClient

client = MongoClient("mongodb://localhost:27017/")

db= client['l']
collection=db['data']
x= [1,2,3,4,5]
record = {'_id': 'x', 'values': x}
db.collection.insert_one(record)

results= collection.find({'values':x})
py49o6xq

py49o6xq1#

首先,我猜你的数据库名是l,数据库中的集合是data,要插入到集合中,请将insert_one行更改为如下形式:

#one way
collection.insert_one(record)

#another way
client['l']['data'].insert_one(record)

您还可以使用点标记法或数组标记法进行某种混合。
那么:results是一个Cursor示例,您可以在其上迭代以获得文档。
因此,您可以尝试:results = [collection.find({'values':x})]以获得与查询匹配的所有文档的列表。

nhn9ugyo

nhn9ugyo2#

下面是一个ipython会话,展示了如何检索存储的"values"

$ ipython
Python 3.10.9 (main, Dec  7 2022, 00:00:00) [GCC 12.2.1 20221121 (Red Hat 12.2.1-4)]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.8.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from pymongo import MongoClient

In [2]: client = MongoClient("mongodb://localhost:27017/")

In [3]: collection = client["l"]["data"]

In [4]: x= [1,2,3,4,5]
   ...: record = {'_id': 'x', 'values': x}

In [5]: cursor = collection.insert_one(record)

In [6]: print(cursor.acknowledged)
True

In [7]: cursor = collection.find_one({"_id": "x"})

In [8]: print(cursor["values"])
[1, 2, 3, 4, 5]

相关问题