MongoDB查询结果没有字段名

10

有没有一种方法可以仅获取 MongoDB 查询结果的值而不是字段名。我的查询给出以下结果:

{
           "t_number" : 2508
},
{
           "t_number" : 2560
},
{
           "t_number" : 2599
}
理想情况下,我希望查询结果为[2508,2560,2599]。如果不可能的话,是否可以将查询结果作为[{2508},{2560},{2599}]获取?我知道我可以在编程语言中遍历结果并更改格式。我正在寻找一种从mongodb获取并节省一些工作的方法。

使用$unwind聚合。另一个管道使用$group和$push。db.col.aggregate([{$unwind: "$t_number"}, {$group: {_id: field, "t_number": {$push: "$t_number"} }}])。试一下。 - horacioibrahim
谢谢。Aggregate 给出了更接近我所寻找的结果。 - pawinder gupta
2个回答

11

不,你不能直接这么做。

但是这个一行代码可能会有帮助:

db.collection.find({},{_id:0, t_number:1}).toArray().map(function(ele) {return ele.t_number} );

1
这会导致[2508,2560,2599]被发送到网络上吗(而不是在应用程序端提取)? - Edward

0

我认为这是不可能的,因为mongodb仅返回JSON对象,并根据http://www.json.org,JSON对象被花括号{ }包围(如果不为空),值始终由字符串表示(并用:分隔)。


MongoDB 返回 BSON 对象。 - Sammaye
如果这是真的,BSON 是 JSON 的二进制表示形式,因此定义有效对象的规则是相同的。 - Simulant
数组是一个对象,也是BSON中的数据类型,在理论上,MongoDB可以仅返回数组的转换结果,但这种功能目前尚不存在。 - Sammaye

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接