如何用JavaScript在mongodb中设置唯一的id
我有这样的数据
Mywants:[ {"title":"lap","rate":$20} {"title":"lap","rate":$20} {"title":"lap","rate":$20} ]
如果我将新的数据保存到数组(mywant),我应该保存新的唯一的ID,所以如何使用JavaScript保存。 所以它应该是这样的:
Mywants:[ {"title":"lap","rate":$20,_id:objectId("512640f3243c837c0e0004401} {"title":"lap","rate":$20,_id:objectId("512640f3243c837254000001} {"title":"lap","rate":$20,_id:objectId("512640f3243c8372540257001}} ]
插入我正在使用命令
collection.update({"userid":1248787885},{$push:{"Mywant":{"title":"car","rate":$100}}});
作为andyb笔记,您必须通过构build新元素来为您的新元素生成ObjectId
。 但是你不需要一个单独的库:
var mongodb = require('mongodb'); collection.update( {"userid":1248787885}, {$push:{"Mywant":{ _id: new mongodb.ObjectID(), "title":"car", "rate":$100 }}});
当然, $100
不是一个有效的JavaScripttypes,但我想你知道这一点。 另外值得一提的是, Mongoose会为你添加_id
字段来为数组元素,所以这是另一种select。
要在JavaScript中生成mongoDB ObjectId
,您可以使用现有的库或者自己实现BSON ObjectId规范。 ObjectId.js是一个这样的库,获取Id很简单:
var objectId = new ObjectId();
在JavaScript中有一个名为Math.random()的方法,它会创builddynamic的随机数,所以你可以修改这个数字作为dynamic的ID。