我有一组物品,它们都附有序列号和其他字段。一个文件看起来像这样
{
_id: ObjectId(),
serialNum: "123456789",
...otherfields
}
我想插入一个新文档,但前提是现有文档都不匹配 serialNum 字段。
我目前使用下面的方法,但它需要我抓取整个集合,循环遍历它,然后执行插入。有没有我可以使用的替代方法,因为这在我的大型收藏中非常慢
当前代码:
const insertItems = (newItem) => {
const itemsCollection = mongodb.db("database").collection("customers");
itemExists = false;
itemsCollection.find({}).toArray()
.then((items) => {
for(let i = 0; i < items.length; i++){
if(items[i].serialNum == newItem.serialNum){
itemExists = true
}
}
})
.then(() => {
if(itemExists){
//error here
} else {
//insert new item
}
})
}