2

我有这样的数据

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}}});
4

3 回答 3

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字段添加到数组元素中,因此这是另一种选择。

于 2013-02-22T14:08:42.987 回答
1

要在 JavaScript 中生成 mongoDB ObjectId,您可以使用现有库或自己实现 BSON ObjectId 规范。ObjectId.js就是这样一个库,获取 ID 非常简单:

var objectId = new ObjectId();
于 2013-02-22T08:25:27.357 回答
0

在 javascript 中有一种称为 Math.random() 的方法,它将创建动态随机数,因此您可以将此数字修改为动态 id。

于 2013-02-22T09:52:26.950 回答