node.js - E11000 重复键错误集合:amaxon.products 索引:name_1 重复键:{名称:“Nike SLim Shirt”}
问题描述
以下是productShema
我的模型productModel.js
:
import mongoose from 'mongoose'
const productSchema = new mongoose.Schema(
{
name: { type: String, required: true, unique: true },
image: { type: String, required: true },
brand: { type: String, required: true },
category: { type: String, required: true },
description: { type: String, required: true },
price: { type: Number, required: true },
countInStock: { type: Number, required: true },
rating: { type: Number, required: true },
numReviews: { type: Number, required: true },
},
{
timestamps: true,
}
)
const Product = mongoose.model('Product', productSchema)
export default Product
这就是我使用它的方式productRouter.js
:
import express from 'express'
import Product from '../models/productModel.js'
import expressAsyncHandler from 'express-async-handler'
import data from '../data.js'
const productRouter = express.Router()
productRouter.get(
'/',
expressAsyncHandler(async (req, res) => {
const products = await Product.find({})
res.send(products)
})
)
productRouter.get(
'/seed',
expressAsyncHandler(async (req, res) => {
// await Product.remove({});
const createdProducts = await Product.insertMany(data.products)
res.send({ createdProducts })
})
)
productRouter.get(
'/:id',
expressAsyncHandler(async (req, res) => {
const product = await Product.findById(req.params.id)
if (product) {
res.send(product)
} else {
res.status(404).send({ message: 'Product not found' })
}
})
)
export default productRouter
在data.products
我有 6 个产品中,然后我尝试从http://localhost:5000/api/products/seed
该地址获取数据,它向我显示:
“E11000 重复键错误集合:amaxon.products 索引:name_1 重复键:{名称:“Nike SLim Shirt”}”
当我尝试从中获取数据时,http://localhost:5000/api/products
它只给了我一种产品。我该如何解决?
解决方案
您正在尝试插入数据而不是使用find
. 检查这个:
productRouter.get(
'/seed',
expressAsyncHandler(async (req, res) => {
// await Product.remove({});
const createdProducts = await Product.find({})
res.send({ createdProducts })
})
)
推荐阅读
- reactjs - 使用 react-hooks 在没有库的 React 表(React-table)中进行多重过滤
- django - 如何在 Django Rest Framework 中序列化用户权限?
- moodle - 如何在 Moodle 3.8 中上传 SWF 源文件?
- c - GTK3 自定义单元格渲染器,用于输出小部件
- swift - 如何在 SwiftUI 中将测量与 UI 绑定?
- c - 程序查找特定单词,然后在文本文件中输出该单词的行
- c# - ASP.NET Web API Google OAuth 保持返回“拒绝访问”
- flutter - 将两个 RadioListTile 瓦片对齐到 Column 的中心
- java - 使用 REST 客户端将 excel 文件上传到 REST 服务会导致 400 Bad request
- python - keras 调谐器的“INFO:tensorflow:Oracle 触发退出”是什么意思?