javascript - 如何使用 JavaScript 在 mongodb 中设置唯一 id

标签 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("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 所指出的,您必须通过构造一个新元素来为新元素生成 ObjectId。但您不需要单独的库:

var mongodb = require('mongodb');
collection.update(
    {"userid":1248787885},
    {$push:{"Mywant":{
        _id: new mongodb.ObjectID(),
        "title":"car",
        "rate":$100
    }}});

当然,$100 不是有效的 JavaScript 类型,但我假设您知道这一点。还值得注意的是Mongoose为您将 _id 字段添加到数组元素中,这是另一种选择。

关于javascript - 如何使用 JavaScript 在 mongodb 中设置唯一 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15019683/

相关文章:

javascript - Google Web Toolkit,附加错误

javascript - 谷歌地图对象的 JSON.stringify

javascript - 动态添加嵌入时 Instagram 嵌入不起作用

javascript - Angular 种子克隆 "npm start"命令错误

node.js - 对 Jest 测试设置时间限制?

node.js - Mongoose 嵌入式文档/DocumentsArrays id

javascript - 在 Canvas 图像上绘制图标

node.js - 无法将文件从 Angularjs 上传到 Expressjs

Mongodb compass 当文档包含错误时不允许插入

javascript - AngularJS - 预期响应包含一个对象,但得到一个数组