我对 mongoDB 非常陌生,并试图找出一个作业查询。我想查找给定城市名称的所有州。
我从这里 http://docs.mongodb.org/manual/tutorial/aggregation-examples/有一个文件, 其中列出了模型
我试着做
aggregate({$group : { _id: $"state"}} , {$match : {city : "BOSTON"}});
关于为什么这不起作用的任何提示?
我对 mongoDB 非常陌生,并试图找出一个作业查询。我想查找给定城市名称的所有州。
我从这里 http://docs.mongodb.org/manual/tutorial/aggregation-examples/有一个文件, 其中列出了模型
我试着做
aggregate({$group : { _id: $"state"}} , {$match : {city : "BOSTON"}});
关于为什么这不起作用的任何提示?
我想答案是您不需要聚合来选择具有指定城市的州。
db.zipcodes.distinct('state', { city : 'BOSTON' })
关于表现 -distinct
似乎aggregate
表现几乎相同:
{“ts”:ISODate(“2013-05-04T06:52:02.772Z”),“op”:“command”,“ns”:“test.$cmd”,“command”:{“aggregate”:“邮政编码”,“管道”:[{“$match”:{“city”:“BELMONT”}},{“$group”:{“_id”:{“state”:“$state”}}}]} ,“ntoreturn”:1,“keyUpdates”:0,“numYield”:0,“lockStats”:{“timeLockedMicros”:{“r”:NumberLong(13990),“w”:NumberLong(0)},“timeAcquiringMicros “:{“r”:NumberLong(10),“w”:NumberLong(5)}},“responseLength”:436,“millis”:14,“client”:“127.0.0.1”,“用户”:“”}
对比
{“ts”:ISODate(“2013-05-04T06:52:11.169Z”),“op”:“command”,“ns”:“test.$cmd”,“command”:{“distinct”:“ zipcodes”、“key”:“state”、“query”:{“city”:“BELMONT”}}、“ntoreturn”:1、“keyUpdates”:0、“numYield”:0、“lockStats”:{“ timeLockedMicros”:{“r”:NumberLong(12153),“w”:NumberLong(0)},“timeAcquiringMicros”:{“r”:NumberLong(4),“w”:NumberLong(5)}},“responseLength “:262,“毫秒”:12,“客户端”:“127.0.0.1”,“用户”:“”}
这就是您使用聚合框架的方式:“zips”应该是您的集合。
db.zips.aggregate([
{$match:
{
city: "BOSTON"
}
},
{$group:
{
_id: {state: "$state"}
}
}
])