我目前正在MongoDB中设计一些东西,我想知道一对一关系的最佳模式是什么。
我的用户文档结构如下:
{
"email": "some@email.com",
"gender": "M",
"name": "Some Name",
"locale": "en_US",
"timezone": "UTC +8",
"country": "China",
"accounts":[
{
"platform_id" : NumberLong(1),
"id" : "556as1234432bb"
},
{
"platform_id" : NumberLong(2),
"id" : "82378437BA98"
},
],
}
我的问题是帐户部分。每个用户只有极少数,因此它似乎是嵌入的理想选择。此外,5%的情况我将需要使用这些ID来检索整个对象,从那时起我可以使用_id字段。
可是:
问题: 我目前不了解索引和查询的组合,这将有助于我实现这一目标。我如何最好地模拟这个?
答案 0 :(得分:0)
根据您的要求的上述描述,作为解决方案,您需要创建一个独特的复合索引
请参阅下面提到的示例
db.user.createIndex({ "accounts.platform_id": 1, "accounts.id": 1 }, { unique: true } )
有关唯一复合索引的更多详细说明,请参阅以下URL中提到的文档
https://docs.mongodb.org/manual/tutorial/create-a-unique-index/