mongoose中populate的列是数组
时间: 2024-02-11 14:06:24 浏览: 19
可以使用Mongoose中的populate方法来填充一个包含数组的字段。假设你有一个包含数组的模式:
```javascript
const userSchema = new mongoose.Schema({
name: String,
messages: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Message' }]
});
const messageSchema = new mongoose.Schema({
text: String,
author: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }
});
const User = mongoose.model('User', userSchema);
const Message = mongoose.model('Message', messageSchema);
```
你可以使用populate方法来填充messages数组中的每个元素:
```javascript
User.findOne({ name: 'John' })
.populate('messages')
.exec(function(err, user) {
console.log(user.messages[0].text); // 'Hello'
});
```
注意,在这个例子中,我们使用ref选项来指定messages数组中的每个元素都是一个Message模型的ID。然后,在populate方法中,我们传递了要填充的字段名,即'messages',Mongoose会自动填充messages数组中的每个元素,将其替换为对应的Message文档。