假设我有一个这样的架构和对象: 那么以下内容和我应该使用哪一个之间有什么区别? 它们都产生相同的结果。 我假设我应该使用get()但是有人可以解释为什么吗? ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
当我在嵌套文档上使用 Document.get 时,它返回未定义,而当我使用 Document.get 和完整路径时,它可以工作
例子:
const PostsSchema = new mongoose.Schema({
author: {
name: String
}
});
const Posts = mongoose.model('posts', PostsSchema);
const doc = new Posts({
author: {
name: 'Harry'
}
});
console.log(doc.get('author.name'));
// "Harry"
console.log(doc.author.get('name'));
// undefined
我相信您提出的两种方式之间的区别与官方文档中解释的子文档和嵌套路径之间的区别有关: 子文档与嵌套路径
与给出的示例相比,'author' 不是 'Posts' 的子文档,它是 Schema 中定义的属性,因此,官方文档Document.prototype.get()中给出的正确语法是通过作为字符串的路径(作为您键入的第一种方式):
doc.get(path,[type],[options])
- 路径«字符串»
- [type] «Schema|String|Number|Buffer|*» 可选择指定动态属性的类型
- [选项] «对象»
- [options.virtuals=false] «Boolean» 在获取此路径之前应用虚拟
- [options.getters=true] «Boolean» 如果为 false,则跳过应用 getters 并获取原始值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.