在Node.js和Mongoose中使用嵌套填充可以通过以下步骤实现:
npm install mongoose
Author
模型和一个Book
模型,并在Book
模型中嵌套填充Author
模型。const mongoose = require('mongoose');
// 创建Author模型
const authorSchema = new mongoose.Schema({
name: String,
age: Number
});
const Author = mongoose.model('Author', authorSchema);
// 创建Book模型,并嵌套填充Author模型
const bookSchema = new mongoose.Schema({
title: String,
author: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Author'
}
});
const Book = mongoose.model('Book', bookSchema);
// 创建一个作者
const author = new Author({
name: 'John Doe',
age: 30
});
// 保存作者到数据库
author.save((err, savedAuthor) => {
if (err) {
console.error(err);
return;
}
// 创建一本书,并嵌套填充作者ID
const book = new Book({
title: 'Sample Book',
author: savedAuthor._id
});
// 保存书籍到数据库
book.save((err, savedBook) => {
if (err) {
console.error(err);
return;
}
console.log('Book saved:', savedBook);
});
});
populate()
方法来填充相关的数据。// 查询书籍,并填充作者信息
Book.findOne({ title: 'Sample Book' })
.populate('author')
.exec((err, book) => {
if (err) {
console.error(err);
return;
}
console.log('Book with author:', book);
});
在上述代码中,populate('author')
用于填充Book
模型中的author
字段,将其替换为完整的Author
对象。
这样,你就可以在Node.js和Mongoose中使用嵌套填充了。请注意,以上示例仅为演示目的,实际应用中可能需要根据具体情况进行适当的调整。
领取专属 10元无门槛券
手把手带您无忧上云