首页 > 解决方案 > 如何使用 Mongodb 从 JSON 字段中提取值?

问题描述

当我运行 mondob 查询时,我在列中得到了这个 json 结果。列名是“{} 用户”

{"email": "mail1@mail.com"}
{"email": "mail6@mail6.com", "name": "name1"}
{"email": "mail2@mail.com"}
{"email": "mail7@mail7.com", "name": "name2"}
{"email": "mail3@mail.com"}
{"email": "mail5@mail8.com", "name": "name3"}
{"email": "mail4@mail.com"}
{"email": "mail5@mail9.com", "name": "name4"}

但是我需要将此 JSON 中的电子邮件和名称提取到不同的列中,例如“电子邮件”、“名称”

我怎么能用 Mongodb 做到这一点?

输出

在此处输入图像描述

询问

db.requests.find(
{
"$and" : [

{"updatedAt": { $gt: ISODate("2020-04-19") }},
{"updatedAt": { $lt: ISODate("2020-05-08") }},
]
},
    {
        "user.email" : 1.0,
        "user.name" : 1.0,
    }
);

标签: mongodb

解决方案


您还可以将结果导出到 csv,例如:

mongoexport --host localhost --db dbname --collection name --csv --out text.csv --fields firstName,middleName,lastName

或者还有:

print("name,email");
db.YOUR_COLLECTION.find().forEach(function(rec){
  print(rec.name+","+rec.email);
});

推荐阅读