mongodb - 如何精确匹配整个文档?

标签 mongodb

精确匹配子文档很容易,但是有没有办法精确匹配集合中的整个文档?

我有很多数据相似的文档,我只需要完全匹配,不需要额外的数据

使用负 $exists 对我不起作用,因为我事先不知道所有可能的字段。

最佳答案

我不认为这是完全可能的,但一个可能的解决方案是对文档进行哈希处理。

保存时,始终创建文档的哈希值:

var doc = {};
delete doc.hash; // never include the hash itself in the calculation
doc.hash = crypto.createHash('sha256').update(JSON.stringify(doc)).digest();
db.collection.insert(doc);

然后查询的时候,可以通过hash查询:

db.collection.find({
  hash: hash
})

如果您经常对文档进行原子更新,可能会很烦人。

关于mongodb - 如何精确匹配整个文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27993275/

相关文章:

c# - MongoDB ObjectIds 曝光

mongodb - 使用 Testcontainers + Quarkus + MongoDB 进行集成测试

mongodb - 按值排序,其中值在另一个集合中,ID 存储在我们应用排序的集合中

mongodb - Mongo 查询从数组中查找畅销商品

java - 如何在 Netbeans 中安装和连接 MongoDb?

node.js - 用于规范化数据的 Mongoose getter/setter

java - Morphia 保存新实体而不是更新 _id

node.js - 如何以不同的用户级别登录我的 Angular

arrays - 添加数组元素(如果尚未包含)

mongodb - 定义ID int64时如何自动生成ID int64 `bson:“_id”`