mongodbでクエリを作成しようとしていますが、最初からいくつの変数があるか分かりません。 変数(文字列)を持つ配列を取得した後、mongoは$または演算子を介して戻り、重複がないようにします。mongodb、python3の文字列からクエリを作成
def findRecipes(IngredientsHome):
#Query and return all the alternatives
arrayCompleteSearch = [];
if len(IngredientsHome) > 1:
#theHardStuuff
#Create the query based on ingredientsarray
argsCount = len(IngredientsHome)
argsFunction = "";
for i in range(0, len(IngredientsHome)):
if i < (len(IngredientsHome)-1):
argsFunction += ("{"+'"_Ingredients":' + '"' + IngredientsHome[i] + '"' "}, ")
else:
argsFunction += "{" + '"_Ingredients":' + '"' + IngredientsHome[i] + '"' + "}"
私は、この
print("coll.find({" + '$or' + ':' + '[' + argsFunction + ']' "})")
のようなコマンドラインが(実行しない)私はMongoDBの中でやりたいが、私はそれがモンゴで動作させる方法がわからないコマンドを印刷しますない場合と結果を配列に返します。私はpymongoを使用していますが、完全なクエリとして文字列を使用することができない場合はありません。 SQLでは、私は全体の "クエリ"を文字列として"SELECT * FROM ..."
を置くことができますが、pymongoが必要です:文字列の外側には、より多くのようにcoll.find({"String":"String"})
があります。私のmongodbクエリーの最初からいくつの式があるかわからないときに、このような方法や別の方法でこのクエリを作成する方法はありますか?
coll.find({'_Ingredients': IngredientsHome[i]})
か、Pythonのリストを渡し、クエリで$in
を使用することができます:代わりに文字列としてクエリを構築する
返された文字列を取得しようとしているのですか、実際のMongoDBクエリを実行する必要がありますか? – errata
MongoDBクエリを実行する必要があります。私はデータベースからの結果が必要です。 – NotUser9123