如何在nodejs中使用mongoose在mongodb中一次创建多个文档。即使有些失败,也应该插入休息,并且输出应该是摘要

问题描述 投票:0回答:1

我想在nodejs中使用mongoose在mongodb中插入/创建多个文档。 现在,即使某些插入失败可能是由于重复的键,其他插入也应该插入,最后我应该有一个输出,显示插入和未插入的数据数组。

    example input document:[
{_id: 11, name:'abc'},
{_id: 22, name:'abc'},
{_id: 11, name:'qwe'},
{_id: 33, name:'xyz'}
]

在此,第三个数据具有重复的 _id,因此将是一个错误 [id dup key: { _id: "11" }] 并且操作将因错误而停止。 但我希望它不应该停止而是插入其他正确的数据

expected output is insert: [
    {_id: 11, name:'abc'},
    {_id: 22, name:'abc'},
    {_id_ dup key: { _id: "11" }},
    {_id: 33, name:'xyz'}
    ]

I have tried both
mongoose.model(student).create(_req.body)
mongoose.model(student).insertMany(_req.body)

但这两种方法都失败并抛出错误。如果要创建的所有传递数据都正确,则工作正确。 是否需要传递任何额外的属性才能实现相同的目的,因为在猫鼬的官方文件中,据我所知,它可以是这样的。还尝试传递一些选项但失败了。 https://mongoosejs.com/docs/api/model.html#Model.create() https://mongoosejs.com/docs/api/model.html#Model.insertMany()

node.js mongodb mongoose insert bulkinsert
1个回答
0
投票

使用 insertMany(_req.body,{ordered: false,writeConcern:{}})

使用此选项可以完成工作,但会引发错误,然后在错误中我们可以获得输出摘要。

虽然这符合我的目的,但如果有人知道更好的方法,一定可以发布你的答案。

© www.soinside.com 2019 - 2024. All rights reserved.