如何在mongoDB默认键列表中添加类似于键'_id'的键?

Posted

技术标签:

【中文标题】如何在mongoDB默认键列表中添加类似于键\'_id\'的键?【英文标题】:How to add a key similar to key '_id' in the mongoDB default key list?如何在mongoDB默认键列表中添加类似于键'_id'的键? 【发布时间】:2021-11-09 12:12:27 【问题描述】:

在 mongoDB 中,每当我们尝试插入任何文档时,mongoDB 都会附加一个称为 ObjectId 的键“_id”。我正在寻找类似的东西并试图复制这个场景。 在我的例子中,我正在尝试创建一个作为“哈希”的键,其值可以根据与文档值相关的一些计算来生成。

假设我使用 db 作为东西

> use stuff

插入文档

> db.products.insert(  item: "card", qty: 15  )

所以通常mongoDB会添加ObjectId并将其存储为

"_id" : ObjectId("5063114bd386d8fadbd6b004"), "item" : "card", "qty" : 15

但我正在尝试将文档存储为类似的东西

"_id" : ObjectId("5063114bd386d8fadbd6b004"), "hash" : “51e0373c6f35bd826f47e9a1”,“项目”:“卡”,“数量”:15

有没有办法在 mongoDB 默认键列表中添加自定义键或任何其他方式来实现上述场景,而无需将其与文档一起显式插入。

【问题讨论】:

【参考方案1】:

_id字段实际上是在客户端的驱动代码中创建并随文档一起提交的。

所以你当然可以添加一个客户端中间件函数来添加你喜欢的任何字段。

【讨论】:

以上是关于如何在mongoDB默认键列表中添加类似于键'_id'的键?的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB查询:如何查找嵌套对象中的字符串

如何制作点“。”和下划线 '_' 的行为类似于 MongoDB 中 $text 索引中的空格

Python:如何将剩余的列表元素添加到列表中,类似于解包?

子文档键上的 MongoDB 索引

子文档键上的 MongoDB 索引

如何使MongoDB的列成为SQL Server中发生的主键,避免重复记录?