如何将JSON数组对象作为单个文档存入Mongoose?
使用Mongoose将JSON对象数组作为单个文档存入MongoDB
1. 定义Schema
首先需要定义一个包含数组字段的Mongoose Schema,用来存放你提供的JSON对象数组:
const mongoose = require('mongoose'); const orderSchema = new mongoose.Schema({ items: [ { item_id: { type: String, required: true }, qty: { type: Number, required: true }, price: { type: Number, required: true } } ], createdAt: { type: Date, default: Date.now } // 可选的附加字段 });
2. 创建Model
基于Schema生成对应的Model:
const Order = mongoose.model('Order', orderSchema);
3. 保存单个文档
在请求处理逻辑中,将请求体的数组作为items字段的值,创建并保存一个文档即可:
// Express路由示例 app.post('/save-order', async (req, res) => { try { const orderDoc = new Order({ items: req.body }); const savedDoc = await orderDoc.save(); res.status(201).json(savedDoc); } catch (error) { res.status(400).json({ error: error.message }); } });
额外说明
- 如果
item_id是关联其他集合的ObjectId,可修改Schema中item_id的类型为mongoose.Schema.Types.ObjectId,并添加ref属性关联目标Model:item_id: { type: mongoose.Schema.Types.ObjectId, required: true, ref: 'Item' } - 执行后,数据库中会生成单个文档,其中
items字段就是你传入的整个JSON数组。
内容的提问来源于stack exchange,提问作者Naveen Chalaka
相关产品推荐
相关产品推荐

