Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb:如何为数组中的每个元素添加唯一值?_Mongodb_Mongoose - Fatal编程技术网

Mongodb:如何为数组中的每个元素添加唯一值?

Mongodb:如何为数组中的每个元素添加唯一值?,mongodb,mongoose,Mongodb,Mongoose,我是mongodb的新用户,我有一个如下的模型。对于更新列表数据,我必须指定数组中的元素。所以我认为我需要为每个元素存储一个唯一的值。因为list.name和list.price是可变数据 那么,在mongodb中有什么好方法可以创建唯一的id呢?或者我应该自己创建唯一的ID吗 { name: 'AAA', list: [ {name: 'HOGE', price: 10, id: 'XXXXXXXXXX'}, // way to add id {name: 'F

我是mongodb的新用户,我有一个如下的模型。对于更新列表数据,我必须指定数组中的元素。所以我认为我需要为每个元素存储一个唯一的值。因为list.name和list.price是可变数据

那么,在mongodb中有什么好方法可以创建唯一的id呢?或者我应该自己创建唯一的ID吗

{
   name: 'AAA',
   list: [
     {name: 'HOGE', price: 10, id: 'XXXXXXXXXX'}, // way to add id
     {name: 'FUGA', price: 12, id: 'YYYYYYYYYY'}  // way to add id
   ]
}

Mongodb
仅为文档创建唯一id。对于列表或数组元素,没有更好的方法。因此,您应该自己创建唯一的ID

添加请记住,在更新列表时使用
$addToSet
。 有关
$addToSet
的更多信息,请遵循以下步骤

在id字段上使用ObjectId(),如

db.test.update({name: "AAA"}, { $push: { list: {_id : ObjectId(), name: "dingles", price: 21} }});
参考: