Return 来自 JSON 使用 PyMongo 的随机结果

Return Random Result from JSON using PyMongo

我正在尝试使用 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) returns 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"
  },
]

您总是得到一个结果,因为 return jsonify(item) 结束了请求。 json 验证 returns 一个响应,它不仅将 Mongo 的结果转换为 json 对象。如果您想将 Mongo 结果转换为序列,请使用 list 然后 random.choice

item = random.choice(list(dataCollection.find({},{"Category":1,"Name":1,"Location":1,"_id":0}))

return jsonify(item)