将MongoDB查询结果转换为JSONArray
Convert MongoDB query result into JSONArray
我有一个MongoDB通过mongoose查询,结果是:
[
{
"tablename": "name1"
},
{
"tablename": "name2"
}
]
但我需要它作为JSONArray:
{
"tablename": [
"name1",
"name2"
]
}
是否有一个简单的方法转换?
聚合框架可以为您创建所需的结果。考虑 $group
和 $push
累加操作符如下:
db.collection.aggregate([
{
"$group": {
"_id": null,
"tablename": {
"$push": "$tablename"
}
}
},
{
"$project": {
"_id": 0, "tablename": 1
}
}
])
样本输出:
/* 0 */
{
"result" : [
{
"tablename" : [
"name1",
"name2"
]
}
],
"ok" : 1
}
你可以使用 aggregate()
方法在mongoose中实现这个,例如:
var pipeline = [
{
"$group": {
"_id": null,
"tablename": {
"$push": "$tablename"
}
}
},
{
"$project": {
"_id": 0, "tablename": 1
}
}
]
Model.aggregate(pipeline).exec(function (err, res){
console.log(res);
})
修改此查询以使用聚合框架:
app.post('/getkost', function(request, response){
var kost = new RegExp(request.body.kost,'i');
Move.find(
{ tablename: { $regex: kost } },
{ tablename: 1, _id: 0 },
function(err, doc) {
response.json(doc);
});
});
:
app.post('/getkost', function(request, response){
var kost = new RegExp(request.body.kost, 'i');
var pipeline = [
{
"$match": {
"tablename": { "$regex": kost }
}
},
{
"$group": {
"_id": null,
"tablename": {
"$push": "$tablename"
}
}
},
{
"$project": {
"_id": 0, "tablename": 1
}
}
]
Move.aggregate(pipeline, function(err, res) {
response.json(res);
});
});
try…
var inputArr = [
{
"tablename": "name1"
},
{
"tablename": "name2"
}
];
var jsonArr = {"tablename": []};
for (var i = 0; i < inputArr.length; i++) {
jsonArr.tablename.push(inputArr[i].tablename);
}
这应该可以为您工作:
var json = [{
"tablename": "name1"
}, {
"tablename": "name2"
}]
var arr = {};
json.forEach(function(value, key) {
var tableName = Object.keys(json[key]);
arr[tableName] = arr[tableName] || [];
arr[tableName].push(value[tableName]);
});
console.log(arr);
小提琴
请记住,Object.keys()
将实际返回一个数组-如果您的数组包含多个键(例如{"tablename": "name1", "othertablename": "name2"}
)
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何使用json将对象列表从java转换为javascript
- 偶尔结结巴巴地说“;堆叠的”;translate()上的转换(v4.0.0-alpha40)
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 在Javascript中转换对象数组
- 将数字转换为一定数量的硬币
- 将纯文本URL转换为可单击链接
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 如何将TypeScript对象转换为普通对象
- FWLSE0013E:无法调用过程JSONObject无法强制转换为JSONArray
- 将JSONArray转换为javascript中的String以发送到java
- 在 Javascript 中将 JSONArray 转换为 JSON 对象
- 这个问题的原因是什么;无法转换org.json.JSONArray类型的参数“”;在react原生android中
- 如何在PHP中将JSONARRAY转换为JSON对象并另存为JSON文件
- JSONArray对象转换为jquery
- 如何解析JSONArray并在Javascript中进行转换
- 将MongoDB查询结果转换为JSONArray