鉴于下面的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转换为整数可能会出现性能问题。
答案 0 :(得分:1)
如果没有客户端处理或map reduce,则无法执行此操作。
mylist = map(int, db.collection.distinct('student_id'))
在PY2中产生student_id
类型的int
或在PY3中产生迭代器对象的列表
如果“student_id”在集合中不是唯一的,并且您不想删除结果,也可以使用.aggregate()
方法显示here。