java - MongoDB 组合键

我刚开始使用 MongoDb,我注意到我得到了很多重复的记录,这些记录是我想要唯一的。我想知道如何为我的数据使用复合键,我正在寻找有关如何创建它们的信息。最后,我使用 Java 来访问 mongo 和 morphia 作为我的 ORM 层,因此在您的答案中包含这些内容会很棒。

吗啡:http://code.google.com/p/morphia/

最佳答案

您也可以为 _id 字段使用对象。 _id 字段始终是唯一的。这样你就可以得到一个复合主键:

 { _id : { a : 1, b: 1} }

在创建这些 id 时要小心,键的顺序(示例中的 a 和 b)很重要,如果交换它们,它会被视为不同的对象。

另一种可能性是不理会_id 和create a unique compound index。 .

db.things.ensureIndex({firstname: 1, lastname: 1}, {unique: true});
//Deprecated since version 3.0.0, is now an alias for db.things.createIndex()

https://docs.mongodb.org/v3.0/reference/method/db.collection.ensureIndex/

https://stackoverflow.com/questions/7222062/

相关文章:

node.js - 一个包含 node.js 和 mongodb 的整个网站?

node.js - CouchDB、MongoDB 和 Redis 中的哪个数据库适合从 Node.

node.js - Mongoose - 按标准查找子文档

mongodb - 如何使用 mongoose 将文档插入 mongodb 并获取生成的 id?

spring - Spring Data MongoDB 和 Hibernate OGM for M

mongodb - 如何为 MongoDB 中的嵌入式文档创建唯一 ID?

MongoDB - 十进制类型的值怎么样?

mongodb - 检查MongoDB中是否存在索引

ruby-on-rails - Mongoid/Mongodb 和查询嵌入文档

javascript - 如何在 Mongoose 中将 _id 设置为 db 文档?