【问题标题】:Efficiently convert field value to integer from mongo find() using python使用python有效地将字段值从mongo find()转换为整数
【发布时间】:2017-08-25 06:00:36
【问题描述】:

给定下面这样的mongo文档,如何有效地找到所有文档并将student_id字段作为整数返回?

 {
     "_id" : ObjectId("58dd757910d81946b8ff853a"),
     "student_id": "4169506398",
     "first_name": "steven",
     "last_name": "smith",
     "date_of_birth": "02-07-1988"
}
{
     "_id" : ObjectId("58dd757910d81946b8ff853b"),
     "student_id": "6902",
     "first_name": "michael",
     "last_name": "clarke",
     "date_of_birth": "05-30-1988"
}

预期结果(Json 格式):

{
     "student_id": 4169506398
}
{
     "student_id": 6902
}

我有 29000 条记录。使用 db.find({}) 获取文档并在循环时将 student_id 转换为整数可能会出现性能问题。

【问题讨论】:

    标签: mongodb python-2.7 pymongo pymongo-2.x


    【解决方案1】:

    如果没有客户端处理或 map reduce,您将无法做到这一点。

    mylist = map(int, db.collection.distinct('student_id'))
    

    在 PY2 中生成 student_id 类型的 int 列表或在 PY3 中生成迭代器对象

    如果“student_id”在集合中不是唯一的并且您不想对结果进行重复数据删除,您也可以使用.aggregate() 所示的here 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      相关资源
      最近更新 更多