如何使用JavaScript在mongodb中设置唯一id
我有这样的数据如何使用JavaScript在mongodb中设置唯一id,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我有这样的数据 Mywants:[ {"title":"lap","rate":$20} {"title":"lap","rate":$20} {"title":"lap","rate":$20} ] 如果我将新数据保存到数组(mywant)中,我应该使用新的唯一id进行保存,这样就可以使用javascript进行保存了。所以应该是这样的: Mywants:[ {"title":"lap","rate":$20,_id:objectId("512640f3243
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,您可以使用现有库或自己实现BSON ObjectId规范。是这样一个库,获取Id非常简单:
var objectId = new ObjectId();
在javascript中,有一种方法叫做Math.random(),它将创建动态随机数,因此您可以将该数字修改为动态id。正如andyb所指出的,您必须通过构造一个新元素来为新元素生成
ObjectId
。但您不需要单独的库:
var mongodb = require('mongodb');
collection.update(
{"userid":1248787885},
{$push:{"Mywant":{
_id: new mongodb.ObjectID(),
"title":"car",
"rate":$100
}}});
当然,
$100
不是一种有效的JavaScript类型,但我想您应该知道这一点。还值得注意的是,在数组元素中添加\u id
字段,所以这是另一种选择。如果我将新数据更新到数组中,它将不会创建新的对象id。请告诉我正确的答案。我已通过指向JavaScript库的链接更新了我的答案,以生成ObjectId
si给出了与上述编码相同的答案,但它以分号显示错误。$push:{“Mywant”:{u id:new mongodb.ObjectId();“title”:“car”,“rate”:$100}}这句语法是否正确?我认为这是错误的语法。