mongodb - 将另一种已定义模式的类型赋予数组
问题描述
我尝试使用类型注释(另一个模式)定义一个数组“注释”。
const beerSchema = new Schema({
name:String,
country:String,
color:String,
alcoholPercent:Number,
upvotes:{type:Number, default:0},
comments:[{type:Schema.Types.ObjectId, ref:'comments'
}]
});
集合对象
[
{
"upvotes": 0,
"comments": [],
"test": [],
"_id": "5b0092af2cdf6b30b80dd386",
"name": "newName",
"country": "Belgium",
"color": "blond",
"alcoholPercent": 4.5,
"__v": 0
}
]
我的评论模式类
const mongoose = require('mongoose');
const {Schema } = mongoose;
const commentSchema = new Schema({
_beer:{type:Schema.Types.ObjectId, ref:'beers'},
postedTime:{type:Date, default:Date.now()},
comment:String,
_user:{type:Schema.Types.ObjectId, ref:'User'}
});
mongoose.model('comments', commentSchema);
要填充的查询:
const newComment = new Comment({
_beer:req.params.id,
comment:'comm1',
// _user:req.user.id
});
newComment.save(function(err){
if(err) return handleError(err);
console.log('new comment saved');
});
Beer.findOne({name:'newName'})
.populate('comments')
.exec(function(err, comment){
if(err) return handleError(err);
console.log('new Comment is %s', comment._beer);
});
当我尝试记录comment._beer 时,我的console.log 给了我未定义的错误。有人可以指出我做错了什么吗?谢谢!
解决方案
您的参考模型不正确Comment
...应该是comments
const beerSchema = new Schema({
name:String,
country:String,
color:String,
alcoholPercent:Number,
upvotes:{type:Number, default:0},
comments:[{type:Schema.Types.ObjectId, ref:'comments'}]
}
推荐阅读
- laravel - Laravel Eloquent 获取比较正确的数据
- node.js - 如何处理空的 req.body Node.js(使用 body-parser)?
- javascript - 根据相关元素的数量更改数组的结构 - JS
- python - 打开 .csv 文件以获取用户名和密码会导致错误
- django - Django check if field is valid for prefetching
- php - Correctly storing query response with GROUP BY using PHP
- node.js - Node.js 执行 shell 命令,几秒钟后需要输入
- c++ - 如果初始化程序不正确,为什么会这样?
- python-3.x - PySimpleGUI如何制作透明的点击窗口?
- c++ - 使用 Visual Studio Code 和 CMake-Tools 调试 QT 应用程序时出现未知错误