Mongo DB / Mongoose如何正确克隆将版本“ Copy(n)”添加到其密钥的文档?

时间:2018-09-21 22:19:54

标签: javascript mongodb mongoose

我需要在我的应用程序中实现Clone函数。克隆功能将复制实际寄存器,并在其中添加“复制”文本。让我们举个例子:

该应用程序基于MongoDB / Mongoose:

> db.customers.find().pretty();
{
    "_id" : ObjectId("5b3a6e74973d5014df9d7d41"),
    "name" : "ACME Company",
    "code" : "ACME",
    "description" : "ACME 
    "createdAt" : 1530556020029,
    "__v" : 0,
    "updatedAt" : 1530556028241,
    "deletedAt" : null,
}

要复制记录:

let cloneCustomer = async id => {
   let customer = await CustomerModel.findById(id);
   customer._id = null;
   customer.name = customer.name + " - Copy";
   customer.save();
}

我的问题是在插入新名称之前要确定它是否已经存在,因为name是一个“唯一”键。因此,如果用户克隆一次并且没有更改名称,我将无法重新克隆它。

我看到应用程序将"Copy"文本连接为"ACME - Copy - Copy"甚至是"ACME - Copy(2)"

有没有一种方法可以在插入之前不搜索新文档(这会导致我在数据库上进行大量重复搜索)?

0 个答案:

没有答案