Node.js 如果不存在,则创建文档,否则返回Null或空:MongoDB
我正在进行购物车项目,用户可以将项目标记为收藏夹。如果某个项目标记为收藏夹,它将保存在我的收藏夹中,但如果他/她已将该项目标记为收藏夹,我需要向移动端返回一些“此项目已标记为收藏夹”的响应。 在这里,我将展示我最喜爱的系列:Node.js 如果不存在,则创建文档,否则返回Null或空:MongoDB,node.js,mongodb,Node.js,Mongodb,我正在进行购物车项目,用户可以将项目标记为收藏夹。如果某个项目标记为收藏夹,它将保存在我的收藏夹中,但如果他/她已将该项目标记为收藏夹,我需要向移动端返回一些“此项目已标记为收藏夹”的响应。 在这里,我将展示我最喜爱的系列: [{ "_id" : "5e6b49162fa5f22c24be54ab", "alcoholId" : "5e68ce2c50c82e1abc842f03", "mixerId" : "5e68dc5b50c82e1abc860709", "ba
[{
"_id" : "5e6b49162fa5f22c24be54ab",
"alcoholId" : "5e68ce2c50c82e1abc842f03",
"mixerId" : "5e68dc5b50c82e1abc860709",
"barId" : "5e55f10d8b54541278e9cb07",
"alcoholName" : "Crown Royal",
"mixerName" : "Ginger beer",
"modifierList" : [
{
"modifierId" : "5e68d38e50c82e1abc84e0e5",
"_id" : "5e6b49162fa5f22c24be54ac",
"modifierName" : "Single"
},
{
"modifierId" : "5e68d38e50c82e1abc84e0e5",
"_id" : "5e6b49162fa5f22c24be54ac",
"modifierName" : "Single"
}
],
"customerId" : "5e60cc09387c6c139c458d6a",
"__v" : 0
},
{
"_id" : "5e6b49802fa5f22c24be54ad",
"alcoholId" : "5e68ce3150c82e1abc842fc9",
"mixerId" : "5e68dc6850c82e1abc8608be",
"barId" : "5e55f0f28b54541278e9cb06",
"alcoholName" : "Jameson Irish",
"mixerName" : "Ginger ale",
"modifierList" : [
{
"modifierId" : "5e68d39350c82e1abc84e1eb",
"_id" : "5e6b49802fa5f22c24be54ae",
"modifierName" : "Rocks"
}
],
"customerId" : "5e60cc09387c6c139c458d6a",
"__v" : 0
}]
如果我再次尝试将下面的数据插入到我的收藏中
{
"alcoholId" : "5e68ce2c50c82e1abc842f03",
"mixerId" : "5e68dc5b50c82e1abc860709",
"barId" : "5e55f10d8b54541278e9cb07",
"alcoholName" : "Crown Royal",
"mixerName" : "Ginger beer",
"modifierList" : [
{
"modifierId" : "5e68d38e50c82e1abc84e0e5",
"modifierName" : "Single"
},
{
"modifierId" : "5e68d38e50c82e1abc84e0e5",
"modifierName" : "Single"
}
],
"customerId" : "5e60cc09387c6c139c458d6a",
"__v" : 0
}
应返回空或null。这意味着,如果其不存在于收藏中,请插入它,否则返回null/empty,这样我就可以识别我的集合中已经存在的这些。是否可以在单个查询中处理而不影响性能。有任何帮助?????您是否尝试了唯一索引?没有…但我想在我的查询中检查这一点..如果您尝试在具有唯一索引的集合中插入第二个副本,响应将是一个“重复键”错误,您可以捕获/处理该错误,并且文档将不会被插入。那么您是说我应该为modifierId+mixerId+AlgorId+barId组合创建一个唯一索引?