我在mongoDb.中有以下文档结构
我希望能够只使用select,而不是all the courses中的teacher属性。我怎么能这么做?
我试过以下几种方法,但不起作用。我也希望当它找到result时,它会将它返回给console
我怎么能这么做?
student.findCourses = (fcallback) => {
var jCourses = {
"courses": [
{
"courseName": "Web-development"
},
{
"courseName": "Databases"
},
{
"courseName": "Databases"
}
]
}
global.db.collection('students').find(({}, { jCourses: true, _id: false, firstName: false, lastName: false, age: false, teachers: false }).toArray, (err) => {
if (err) {
var jError = { "status": "error", "message": "ERROR -> student.js -> 001" }
console.log(jError)
return fcallback(true, jError)
}
var jOk = { "status": "ok", "message": "student.js -> found -> 000" }
console.log(jOk)
return fcallback(false, jOk)
})
}该文件:
{
"firstName": "Sarah",
"lastName": "Jepsen",
"age": 27,
"courses": [
{
"courseName": "Web-development",
"teachers": [
{
"firstName": "Santiago",
"lastName": "Donoso"
}
]
},
{
"courseName": "Databases",
"teachers": [
{
"firstName": "Dany",
"lastName": "Kallas"
},
{
"firstName": "Rune",
"lastName": "Lyng"
}
]
},
{
"courseName": "Interface-Design",
"teachers": [
{
"firstName": "Roxana",
"lastName": "Stolniceanu"
}
]
}
]
}结果应该如下所示:
{
"courses": [
{
"courseName": "Web-development"
},
{
"courseName": "Databases"
},
{
"courseName": "Databases"
}
]
}发布于 2017-11-05 17:04:55
您可以使用点语法。
就像这样:
global.db.collection('students').find({}, { "courses.courseName": true, _id: false }).toArray((err, docs) => {
if (err) {
var jError = { "status": "error", "message": "ERROR -> student.js -> 001" }
console.log(jError)
return fcallback(true, jError)
}
var jOk = { "status": "ok", "message": "student.js -> found -> 000" }
console.log(jOk);
console.log(docs); // Will print to the console the data that you want
return fcallback(false, jOk)
})它将只打印 courseName of courses。
芒果壳上的例子:
> db.users.find().pretty()
{
"_id" : ObjectId("59ff442eb40a672f2223a14f"),
"firstName" : "Sarah",
"lastName" : "Jepsen",
"age" : 27,
"courses" : [
{
"courseName" : "Web-development",
"teachers" : [
{
"firstName" : "Santiago",
"lastName" : "Donoso"
}
]
},
{
"courseName" : "Databases",
"teachers" : [
{
"firstName" : "Dany",
"lastName" : "Kallas"
},
{
"firstName" : "Rune",
"lastName" : "Lyng"
}
]
},
{
"courseName" : "Interface-Design",
"teachers" : [
{
"firstName" : "Roxana",
"lastName" : "Stolniceanu"
}
]
}
]
}
> db.users.find({}, {_id: 1, "courses.courseName": 1}).pretty()
{
"_id" : ObjectId("59ff442eb40a672f2223a14f"),
"courses" : [
{
"courseName" : "Web-development"
},
{
"courseName" : "Databases"
},
{
"courseName" : "Interface-Design"
}
]
}
> db.users.find({}, {_id: 0, "courses.courseName": 1}).pretty()
{
"courses" : [
{
"courseName" : "Web-development"
},
{
"courseName" : "Databases"
},
{
"courseName" : "Interface-Design"
}
]
}https://stackoverflow.com/questions/47124130
复制相似问题