在MongoDB中,从文档中获取单个字段数组的最简单方法是什么
in mongodb, whats the easiest way to get an array of a single field from the documents
假设我的收藏中有这些文档:
{
_id: xxx,
region: "sw"
},
{
_id: yyy,
region: "nw"
}
我想得到一个这样的数组:
['sw', 'nw']
我已经尝试过mongodb聚合/组和mapreduce,但我总是得到一个文档数组,然后必须再次循环访问才能到达单个数组。 有没有办法在单个mongodb查询中实现这一点,还是总是需要查询然后进一步处理?
试试这个:
db.foo.aggregate(
{$group: {_id: null, region: {$push: "$region"}}}
).result[0].region
或者,如果您想使用map-reduce:
db.foo.mapReduce(
function() { emit(null, this.region)},
function(key, values) {
result = {region: []};
values.forEach(function(x){ result.region.push(x); });
return result;
},
{out: {inline: 1}}
).results[0].value.region
或者使用组(感谢@Travis添加这个):
db.foo.group({
reduce: function (curr, result) {
result.regions.push(curr.region);
},
initial: { regions: [] }
})[0].regions
注意
使用每种方法,您必须记住有关BSON文档大小限制的信息
相关文章:
- 在Javascript数组中查找绝对最大值
- 按最大值获取数组索引
- RegEx只匹配JSON字符串中最里面的数组
- 在MongoDB中,从文档中获取单个字段数组的最简单方法是什么
- 检查数组中元素的数据类型是否为日期对象的最简单方法
- 来自数据库数组的简单 Javascript 幻灯片
- 如何在 javascript 中使用数组创建简单的搜索
- 我的算法中查找数组最大元素的缺陷在哪里
- 从对象数组创建简单数组&另一个简单的数组
- 查看数组是否有数组的最简单方法?Javascript
- 从Javascript数组加载下拉列表并使用angularjs设置选定值的最简单方法
- 这对于数组元素上的简单数组迭代操作来说是最有效的
- 数字作为字符串的数组到简单int的转换问题
- 尝试用jQuery从对象数组创建简单的表
- 美国城市/州数组的简单方法
- 在数组中给所有字符串加上" "前缀的最简单方法是什么?(感叹号)在javascript
- 使用数组的简单JavaScript绑定onClick
- 在 JavaScript 中创建 1.20 整数数组的最简单方法
- 改变这种字符串数组最优雅的方法是什么
- 解析数据从javascript数组和简单的html dom组合