我有这样的数据
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}}});
答案 0 :(得分:2)
正如andyb所说,你必须通过构建一个新元素为你的新元素生成ObjectId
。但是你不需要一个单独的库:
var mongodb = require('mongodb');
collection.update(
{"userid":1248787885},
{$push:{"Mywant":{
_id: new mongodb.ObjectID(),
"title":"car",
"rate":$100
}}});
当然,$100
不是有效的JavaScript类型,但我认为你知道这一点。值得注意的是Mongoose为您添加_id
字段到数组元素,这是另一种选择。
答案 1 :(得分:1)
要在JavaScript中生成mongoDB ObjectId
,您可以使用现有库或自己实现BSON ObjectId规范。 ObjectId.js就是这样一个库,获得一个ID就像:
var objectId = new ObjectId();
答案 2 :(得分:0)
在javascript中有一个名为Math.random()的方法,它会创建动态随机数,因此您可以将此数字修改为动态ID。