【问题标题】:Return Random Result from JSON using PyMongo使用 PyMongo 从 JSON 返回随机结果
【发布时间】:2015-07-20 20:36:04
【问题描述】:

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

【问题讨论】:

    标签: python json mongodb pymongo


    【解决方案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)
    

    【讨论】:

    • 感谢您的解释!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 2019-09-18
    • 2010-11-23
    • 2015-01-14
    • 1970-01-01
    • 2017-12-27
    相关资源
    最近更新 更多