如何用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}}}); 

       

网上收集的解决方案 "如何用JavaScript在mongodb中设置唯一的id"

作为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。