探索 python 和 mongo 并不能理清我在下面做错了什么
如何将变量传递给 find_one() 记录?
下面的代码有效,但在 find_one() 中硬编码了 id 值,因此没有任何价值,但证明连接代码和函数有效
from pymongo import MongoClient
#connect to mongo database hosted on dedicated mongo server
#the script expects the host name to be in /etc/hosts file
#Set up global variables here
mongo_server = "mongo_api"
mongo_port = "27017"
mongo_user = "admin"
mongo_passwd = ":mypassword@"
connect_string = "mongodb://"+ mongo_user
+ mongo_passwd
+ mongo_server
+ ":"
+ mongo_port
def get_page(page_no):
connection = MongoClient(connect_string) # equal to > show dbs
db = connection.test_database # equal to > use test_database
pages = db.pages
my_page = pages.find_one({"id": 2}) <---- VALUE HARD CODED WORKS
return (my_page)
print get_page(1)
下面的代码失败或返回 NONE 我找不到将函数参数 page_no 传递给 find_one() 函数以拉回记录的方法
我试图将 page_no 转换为字符串等,但无济于事。
在下面的代码片段中,我包含了一些变体,我试图将页码的值传递给 find_one() 请求,但无济于事。
def get_page(page_no):
index_val = str(page_no)
connection = MongoClient(connect_string) # equal to > show dbs
db = connection.test_database # equal to > use test_database
pages = db.pages
# NONE OF THESE VARIANTS WORK OTHERS I HAVE TRIED
my_page = pages.find_one({"id": page_no}) <-- TRYING TO USE PARAMETER FAILS
my_page = pages.find_one({"id": str(page_no)})
my_page = pages.find_one({"id": index_val})
return (my_page)
print get_page(1)
我要么收到错误,要么收到 NONE
顺便说一句,上面的密码不是我的真实密码,我想我会把连接字符串留给其他人看看我是怎么做到的。
任何帮助表示赞赏。
谢谢