在Mongo中排序和查找但只获取特定字段

时间:2018-04-19 13:25:07

标签: mongodb mongodb-query pymongo

我想知道我是否可以在Mongo中排序和查找但只返回特定字段。

此命令按字段properties.aar对结果进行排序,但返回数据集中的所有字段。

db.collection.aggregate([
   {$group : {_id : "$ccp",
    periods : {$push : {period : "$period", sales : "$sales", units : "$units" }}}},
   {$project : { periods : 1, "ccp" : "$_id" , _id : 0 }}
  ])

结果(示例):

db.samplecol.find().sort({"properties.aar":1})

我想知道我是否只能返回geometry.coordinates。

更新

结果未根据字段属性进行排序.aar。适合我的代码是(pymongo):

{ "_id" : ObjectId("5ad70f71f2119236741ffb03"), "geometry" : { "type" : "Point", "coordinates" : [ 119.6164, 4.7121 ] }, "type" : "Feature", "properties" : { "STATUS" : "0", "TIMESTAMP" : "2013-12-31 18:49:00.000", "aar" : "205580000", "COURSE" : "175", "SPEED" : "153", "HEADING" : "176" } }

所以,@ Neil Lunn请不要这么快判断标记问题。

1 个答案:

答案 0 :(得分:0)

您正在寻找的内容称为'投影' :

查看文档here

  

通过在投影文档中将“1”设置为1,投影可以明确包含多个字段。以下操作返回与查询匹配的所有文档。在结果集中,只有项目,状态和默认情况下_id字段在匹配的文档中返回。

     

db.inventory.find({status:" A"},{item:1,status:1})

如果您使用的是猫鼬,则可以使用.select()方法,更多信息here