【发布时间】:2017-06-01 22:13:21
【问题描述】:
我有这样的模式和我,试图使用_id从数组中获取文档。这是我正在工作的第一个 Mongo 项目,请帮助我如何实现。我基本上是想检索id对应的子文档并更新其中的一些数据。
var PhoneSchema = new mongoose.Schema({
type: String,
number: String
});
var StudentSchema = new mongoose.Schema({
name: String,
dept: String,
phone: [PhoneSchema]
});
var Phone = mongoose.model('Phone',PhoneSchema);
var Student = mongoose.model('Student',StudentSchema);
我尝试了以下方法,但都没有奏效。
方法 1:当我在控制台中尝试相同的方法时,它会为我提供父文档以及对应于 phoneId 的子文档
Student.findOne({"phone._id":new mongoose.Schema.Types.ObjectId(phoneId) }, {'phone.$':1}, function(err, student) {
}
方法2:根据猫鼬文档检索子文档,在这种情况下,我收到异常说电话未定义
Student.phone.Id(phoneId);
我已通过从以下查询中删除架构来解决此问题
Student.findOne({"phone._id":new mongoose.Types.ObjectId(phoneId) }, {'phone.$':1}, function(err, student) {
}
【问题讨论】:
-
你想达到什么目的? StudentSchema 文档或 PhoneSchema 文档?
-
我想获取电话架构文档并更新电话号码。