问题,我使用猫鼬创建了一个对象的架构。我不知道如何查询author id
,该查询将返回author Id
var mongoose = require("mongoose");
var bookedSchema = new mongoose.Schema({
origin: String,
destination: String,
author: { id: { type: mongoose.Schema.Types.ObjectId, ref: "User"}, username: String},
Date: {type: Date, default: Date.now}
});
module.exports = mongoose.model("Booked", bookedSchema);
在我的路线上,我有一个查询find({})
,而不是{}
,我想查询作者ID,它将返回作者ID下的对象列表。我尝试了findById(author:{id:req.user._id})
,但返回了空答案。任何想法如何做到这一点。谢谢!
router.get('/myAccount', function(req, res){
Booked.find({}).exec(function(err, booked){
if(err){
console.log(err);
// res.redirect('back');
}else{
console.log(booked)
res.render('accounts/myAccount', {booking:booked});
}
});
});
答案 0 :(得分:0)
对于引用的文档,应使用.populate()来填充它们。 改变这个:
Booked.find({}).exec(function(err, booked)
收件人:
Booked.find({}).populate('author').exec(function(err, booked)
或者如果您需要按引用的作者ID查找文档,则可以使用以下方法:
Booked.find({}).populate({
path: 'author',
match: { id: { $eq: req.user._id }}
}).exec(function(err, booked)