我第一次与MongoDB合作。我想从MongoDB集合中的对象数组中检索特定字段。我需要帮助怎么做?
在我的数据库中有一个叫做技能的结构,它是以数组的形式出现的。我想分别检索experienceInMonths和skillName。
{
"skills" : [
{
"skillName" : "sql",
"experienceInMonths" : 2
},
{
"skillName" : "java",
"experienceInMonths" : 3
}
]
}我试图使用$elemMatch检索特定字段。
但是,我没有得到预期的结果。
> db.userforms.find({"emailId": "nagendra@gmail.com"},{"_id":0, "skills":1})
{ "skills" : [ { "skillName" : "sql", "experienceInMonths" : 2 }, { "skillName" : "java", "experienceInMonths" : 3 } ] }
> db.userforms.find({"emailId":"nagendra@gmail.com"},{"_id":0, "skills":{$elemMatch: {"skillName":"sql"}}})
{ "skills" : [ { "skillName" : "sql", "experienceInMonths" : 2 } ] }实际结果是:{“技能”:{ "skillName“:"sql","experienceInMonths”:2}
但是所需的结果是:{"skillName“:"sql","java"}
发布于 2019-01-09 12:28:50
使用聚合:
db.userforms.aggregate([
{ $match: { emailId: "nagendra@gmail.com" } },
{ $project: { skillName: { $concatArrays: "$skills.skillName" } } }
])将返回:
{ "_id" : 0, "skillName" : [ "sql", "java" ] }
https://stackoverflow.com/questions/54109315
复制相似问题