0

给定如下的 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 转换为整数可能会出现性能问题。

4

1 回答 1

1

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

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

这会产生 PY2 中student_id的类型列表int或 PY3 中的迭代器对象

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

于 2017-03-31T06:16:52.993 回答