gpt4 book ai didi

mongodb - 在 Mongoose 中使用自定义的 ObjectId 并避免重复输入

转载 作者:IT老高 更新时间:2023-10-28 13:28:22 26 4
gpt4 key购买 nike

我通过 node.js 中的外部 API 获取 JSON 对象,并希望将它们存储在 MongoDB 中。我定义了一个这样的模型:

var Product = new Schema({
id: ObjectId,
name: String});

现在我正在尝试存储一个对象:

JSONProduct = { id: 1234, name: 'The Foo Bar' };
product = new Product(JSONProduct);
product.save();

对象在“products”集合中存储得很好,但是 JSONProduct 中的 id 被 MongoDB 创建的值替换:

{ "id" : ObjectId("119894980274616772006500"), "name" : "The Foo Bar" }

我想在创建的 MongoDB 上使用我的产品 ID 的主要原因是,我想防止产品的重复条目。我通过对外部 API 的 cronjob 触发调用(包括已经存在的 API)获取 JSON Product 对象。也许还有另一种更好的方法来做到这一点?

最佳答案

您正在将字段定义为 ObjectID,但您正在为其分配一个数字。要创建 ObjectID,您需要执行以下操作:

new ObjectId('something');

但是,在您的情况下,这可能不是最好的主意。像这样定义你的模型:

var Product = new Schema({
external_id: {type: Number, unique: true},
name: {type: String},
});

您可以在字段上指定 unique 以为该字段创建唯一索引。

关于mongodb - 在 Mongoose 中使用自定义的 ObjectId 并避免重复输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5558400/

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