Tho*_*mas 6 mongoose mongodb node.js
我通过node.js中的外部API获取JSON对象,并希望将它们存储在MongoDB中.我定义了这样的模型:
var Product = new Schema({
id: ObjectId,
name: String});
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试存储一个对象:
JSONProduct = { id: 1234, name: 'The Foo Bar' };
product = new Product(JSONProduct);
product.save();
Run Code Online (Sandbox Code Playgroud)
该对象在"products"集合中存储得很好,但是JSONProduct中的id 被MongoDB创建的值替换:
{ "id" : ObjectId("119894980274616772006500"), "name" : "The Foo Bar" }
Run Code Online (Sandbox Code Playgroud)
我想在MongoDB中使用我的产品ID的主要原因是,我希望防止产品的重复条目.我通过外部API上的cronjob触发调用获取JSON Product对象,包括已经存在的API.也许有另一个更好的方法来做到这一点?
您正在将字段定义为ObjectID,但您要为其分配一个数字.要创建ObjectID,您需要执行以下操作:
new ObjectId('something');
Run Code Online (Sandbox Code Playgroud)
但是,在您的情况下,这可能不是最好的主意.像这样定义你的模型:
var Product = new Schema({
external_id: {type: Number, unique: true},
name: {type: String},
});
Run Code Online (Sandbox Code Playgroud)
您可以unique在字段上指定为该字段创建唯一索引.
| 归档时间: |
|
| 查看次数: |
2416 次 |
| 最近记录: |