防止在MongoDB中创建重复ID

时间:2018-03-20 19:08:07

标签: javascript node.js mongodb

在我的Node / MongoDB后端中,我有一个引用付款人集合的模型,如下所示:

clients: [{ id: { type: mongoose.Schema.Types.ObjectId, ref: 'clients' } }],

这是有效的,因为插入了对正确“客户端”的引用的id。然而,也发生了什么是mongo自动插入mongo ID。因此,在相关文档中,我最终得到了这个:

clients: [{
    id: 6b8702ad021ba27d4a3b26h9, // my correct ref object ID
    _id: 4n8702bv036ba12g6a3b28f4 // an additional object ID auto inserted by mongo
}]

如何防止在这种情况下自动插入mongo ID?而且,相关地说,如果我在原始参考中使用_,就像这样:

clients: [{ _id: { type: mongoose.Schema.Types.ObjectId, ref: 'clients' } }],

...这是否会阻止这种情况发生,因为“_id”已经存在值?换句话说,Mongo会不会自动插入另一个ID吗?如果是这样,那就是我将采取的路线。

1 个答案:

答案 0 :(得分:2)

是的,覆盖_id会起作用。请注意,_id是您数据库的主键,因此它必须是唯一的,否则Mongo会抛出错误。