gpt4 book ai didi

Node.js 和 MongoDB 如果文档完全匹配存在,则忽略插入

转载 作者:太空宇宙 更新时间:2023-11-04 01:01:12 25 4
gpt4 key购买 nike

我正在维护一个唯一值的集合,其中有一个包含这些值实例的伴随集合。我这样做的原因是伴随集合有超过 1000 万条记录,其中唯一值集合加起来只有 100K,我在各处使用这些值并进行部分匹配查找。

当我上传 csv 文件时,通常会一次将 10k 到 500k 条记录插入到配套集合中。仅将尚不存在的值插入到唯一值集合中的最佳方法是什么?

示例:

//Insert large quantities of objects into mongo
var bulkInsert = [
{
name: "Some Name",
other: "zxy",
properties: "abc"
},
{
name: "Some Name",
other: "zxy",
properties: "abc"
},
{
name: "Other Name",
other: "zxy",
properties: "abc"
}]
//Need to insert only values that do not already exist in mongo unique values collection
var uniqueValues = [
{
name:"Some Name"
},
{
name:"Other Name"
}
]

编辑我尝试在该字段上创建唯一索引,但是一旦它在我插入的文档数组中找到重复项,它就会停止整个过程,并且在中断后不会继续检查任何值。

最佳答案

想通了。如果您从 shell 执行此操作,则需要使用 Bulk() 并创建如下插入作业:

var bulk = db.collection.initializeUnorderedBulkOp();
bulk.insert( { name: "1234567890a"} );
bulk.insert( { name: "1234567890b"} );
bulk.insert( { name: "1234567890"} );
bulk.execute();

在 Node 中,continueOnError 标志适用于直接 collection.insert()

collection.insert( [{name:"1234567890a"},{name:"1234567890c"}],{continueOnError:true}, function(err, doc){}

关于Node.js 和 MongoDB 如果文档完全匹配存在,则忽略插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26663653/

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