python と mongo を探索していて、以下で私が間違っていることを整理できません
変数を find_one() レコードに渡すにはどうすればよいですか?
以下のコードは機能しますが、id 値が find_one() にハードコードされているため、価値はありませんが、接続コードと関数が機能することを証明しています
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 が表示される
ところで、上記のパスワードは私の実際のパスワードではありません。接続文字列を他の人がどのように行ったかを確認できるように残しておくと思いました。
どんな助けでも感謝します。
ありがとう