gpt4 book ai didi

node.js - Mongoose只保存对象_id值的数组

转载 作者:太空宇宙 更新时间:2023-11-03 22:22:29 25 4
gpt4 key购买 nike

我试图将消息数组发布到 Mongoose 数据库,但它只保存 _id 属性,而不是内容和发件人属性。我做错了什么?

组架构:

var GroupSchema = new mongoose.Schema({
name: {
type: String,
required: true,
minlenght: 1,
trim: true
},
messages: {
type: [{type: Schema.ObjectId, ref: 'Message'}]
},
_creator: {
type: mongoose.Schema.Types.ObjectId,
required: true
}
});

消息架构:

var MessageSchema = new mongoose.Schema({
content: {
type: String,
required: true,
minlenght: 1,
trim: true
},
sender: {
type: String,
required: true
}
});

POST/rooms 路线而不保存

const messages = [];
for (const m of req.body.messages) {
messages.push(new Message(m));

}

var group = new Group({
name: req.body.name,
_creator: req.user._id,
messages: messages
});

JSON data in postman

When I run GET I only get back the messages objectID values

最佳答案

这是设计使然。您可以通过以下方式在 GroupSchemaMessageSchema 之间进行交叉引用:

messages: {
type: [{type: Schema.ObjectId, ref: 'Message'}]
}

这意味着 GroupSchema/messages包含与您的 Messages 集合交叉引用的消息的 ObjectId。

您需要使用populate获取实际的文档加载。

The ref option is what tells Mongoose which model to use during population.

关于node.js - Mongoose只保存对象_id值的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52575696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com