在mongodb中更新时自动在子文档上添加对象id

q8l4jmvw  于 2023-05-22  发布在  Go
关注(0)|答案(2)|浏览(170)

文件:

[{
   _id: "58aaf5f87fa9df48753fa04b",
   username: "test",
   stores: [ ]
}]

我想在stores元素中添加新对象。有没有什么方法可以为我添加的每个新对象自动添加一个new _id?我用的是2.6版本

gkl3eglg

gkl3eglg1#

不使用mongodb native driver,它不会为您添加_id到子文档。
但是如果使用mongoose-odm,它会自动将_id添加到子文档数组中。
如果您使用mongodb原生驱动程序,则可以在保存之前添加并初始化_id: ObjectID()字段:

const ObjectID = require('mongodb').ObjectID
const doc = {
   _id: new ObjectID(),
   username: "test",
   stores: [ ]
}
doc.stores.push({ _id: new ObjectID(), value: '...' });
8ehkhllq

8ehkhllq2#

public class BatteryDetails {
    /**
     * The batteryId of the Battery.
     */
    private String batteryId;
public BatteryDetails() {
        batteryId= new ObjectId().toString();
    }
}

这一行(batteryId= new ObjectId().toString();)为子文档创建了一个objectId

相关问题