我试图使用PyMongo从一组JSON数据中检索随机结果。我正在使用Flask和MongoDB。以下是它的设置方式:
def getData():
dataCollection = db["data"]
for item in dataCollection.find({},{"Category":1,"Name":1,"Location":1,"_id":0}):
return (jsonify(item)
return (jsonify(item)
返回1个结果,它始终是第一个结果。我怎么能随机化呢?
我尝试导入随机模块(import random
)并将最后一行切换为random.choice(jsonify(item)
,但这会导致错误。
以下是导入MongoDB的数据:
[
{
"Category":"Tennis",
"Name":"ABC Courts",
"Location":"123 Fake St"
},
{
"Category":"Soccer",
"Name":"XYZ Arena",
"Location":"319 Ace Blvd"
},
{
"Category":"Basketball",
"Name":"Dome Courts",
"Location":"8934 My Way"
},
]
答案 0 :(得分:1)
您总是得到一个结果,因为return jsonify(item)
结束了请求。 jsonify返回一个响应,它不仅将Mongo的结果转换为json对象。如果您想将Mongo结果转换为序列,请使用list
,然后使用random.choice
item = random.choice(list(dataCollection.find({},{"Category":1,"Name":1,"Location":1,"_id":0}))
return jsonify(item)