我在mongo控制台上有以下查询
db.photos.find({'creation_date': {$gte: <somedate>)}}).
有没有办法只使用mongo shell从查询结果中提取id?
答案 0 :(得分:3)
尝试使用 map()
游标方法
var ids = db.photos.find({'creation_date': { '$gte': <somedate>) } }, {'_id': 1})
.map(function (doc){ return doc._id; })
您也可以使用 distinct()
方法
var ids = db.photos.distinct('_id', {'creation_date': { '$gte': <somedate>) } })
或 toArray()
上的 aggregate()
光标方法为
var ids = db.photos.aggregate([
{ '$match': {'creation_date': { '$gte': <somedate>) } } }
{ '$group': { '_id': 0, 'ids': { '$push': '$_id' } } }
]).toArray()[0].ids
答案 1 :(得分:2)
MongoDb提供查询结果的限制字段
在以下链接中查看更多信息
http://docs.mongodb.org/manual/tutorial/project-fields-from-query-results/
db.photos.find({'creation_date':{$ gte:)},{“_ id”:1}});
返回
{ “_id”:1 } { “-id”:2 } ...
答案 2 :(得分:2)
您可以使用distinct
代替find
:
collection.distinct('_id', {'creation_date': some_date})