在mongodb中插入数据的最佳方式是什么
在将数据写入mongodb时,我们检查数据是否存在。获取_id并使用save-update-it-else使用insert-add-the-data。如果在保存查询时在查询中提供_id,则读取保存是最好的方法,它将根据数据库中是否存在该_id进行更新/插入。保存是最好的方法还是有其他方法。来自文档 根据文档参数更新现有文档或插入新文档 将一个或多个文档插入到集合中 如果在您的案例中使用在mongodb中插入数据的最佳方式是什么,mongodb,Mongodb,在将数据写入mongodb时,我们检查数据是否存在。获取_id并使用save-update-it-else使用insert-add-the-data。如果在保存查询时在查询中提供_id,则读取保存是最好的方法,它将根据数据库中是否存在该_id进行更新/插入。保存是最好的方法还是有其他方法。来自文档 根据文档参数更新现有文档或插入新文档 将一个或多个文档插入到集合中 如果在您的案例中使用db.collection.insert()则会出现重复密钥错误,因为它将尝试插入与现有文档具有相同\u i
db.collection.insert()
则会出现重复密钥错误,因为它将尝试插入与现有文档具有相同\u id
的新文档。但是,您应该使用文档中的方法,而不是使用save
。
根据文档参数更新现有文档或插入新文档
将一个或多个文档插入到集合中
如果在本例中使用
db.collection.insert()
,则会出现复制键错误,因为它将尝试插入与现有文档具有相同\u id
的新文档。但是不要使用save
而是应该使用该方法。如果所有数据都可以保存,只需每次运行,但使用upsert
功能即可。只需要一个查询:
db.collection.update(
['_id' => $id],
$data,
['upsert' => true]
);
如果您的\u id
是由mongo生成的,您总是知道数据库中有一条记录,update
是要使用的记录,但是您也可以save()
如果您生成了您的id(因此不知道它是否来自集合),则无需运行额外的查询即可正常工作。如果您有所有可用数据可保存,只需每次运行,但使用
upsert
功能即可。只需要一个查询:
db.collection.update(
['_id' => $id],
$data,
['upsert' => true]
);
如果您的\u id
是由mongo生成的,您总是知道数据库中有一条记录,update
是要使用的记录,但是您也可以save()
如果您生成了您的id(因此不知道它是否来自集合),无需运行额外的查询,这将始终有效。因此,如果我有“id”,则保存是最佳方法?@aravchr YES
save
isSo如果我有“id”,则保存是最佳方法?@aravchr YESsave
如果您不确定,则始终使用upsert更新。否则,插入以创建新的是好的。:)如果不确定,请始终使用update with upsert。否则,插入以创建新的是好的。:)保存在保存整个文档时更有效,更新在保存特定字段时更有效,而且只有更新才能执行某些功能,例如$inc
保存在保存整个文档时更有效,更新在保存特定字段时更有效,此外,只有更新才能执行某些功能,如$inc