我在mongoDB中存储了一些数据,我存储的其中一个值存储在列表中:
{ "_id" : ObjectId("53e69fa04250631b68443a6d"), "uts" : [ 1407623152, 1407623477 ] }
{ "_id" : ObjectId("53e69f684250631b3d9645af"), "uts" : [ 1407622961 ] }
...
如何在所有列表之间获得较小的uts数字?
答案 0 :(得分:1)
这是.aggregate()
方法的用途,因为您正在有效地操作返回的数据:
db.collection.aggregate([
{ "$unwind": "$uts" },
{ "$group": {
"_id": None,
"uts": { "$min": "$uts" }
}}
])
从集合中的所有文档中返回最小值。或者只获取每个文档的最小值,为分组键提供原始_id
值:
db.collection.aggregate([
{ "$unwind": "$uts" },
{ "$group": {
"_id": "$_id",
"uts": { "$min": "$uts" }
}}
])
$unwind
运算符"反规范化"数组内容,以便每个条目有效地成为具有所有其他值的新文档。 $group
运算符也完全按照所说的和"组"给定密钥的文档。这里$min
运算符用于" uts"字段以找到最小值。
官方文档中的SQL to Aggregation Mapping文档是介绍概念的好地方。