例如我要获得所有的name字段集合['bob', 'ahn', 'abc'],该怎么写sql
{
"_id" : 2,
"name" : "bob",
"age" : 42,
"type" : 1,
"status" : "A",
"finished" : [ 11, 25 ],
"badges" : [ "green" ]
}
{
"_id" : 3,
"name" : "ahn",
"age" : 22,
"type" : 2,
"status" : "A",
"finished" : [ 6 ],
"badges" : [ "blue", "red" ]
}
{
"_id" : 6,
"name" : "abc",
"age" : 43,
"type" : 1,
"status" : "A",
"finished" : [ 18, 12 ],
"badges" : [ "black", "blue" ]
}
不管通过何种方式,数据库给你的结果只会是:
如果是在shell下面,可以用JS脚本进行转换:
这里用到cursor.map方法。在不同的驱动中应该都有不同的实现。但这部分工作实际上不是数据库为你完成的,而是驱动在app端做的转换。数据库是紧要资源,在不影响性能的前提下应该尽可能把消耗资源的行为都放到应用端。因为相比数据库,应用的水平扩展要容易并且成本更低。