我在 mongodb 中有类似的数据。有一个猫的集合。猫被分类成不同的类别并从 1 到 100 排名。一只猫可能位于 2 个或更多类别中。有 1000 多个类别。
收藏:“猫”
按键:
rank.category1 = 1; // ranked 1st in category #1
rank.category2 = 13; // ranked 13th in category #2
rank.category425 = 50; // ranked 50th in category #425
问题: 如果我想做一个 find() 来返回在 $exists => "rank.category2"的“category2”中具有“rank”的所有“cats”,那么索引这个的正确方法是什么?我可以在“排名”集合上放置一个简单的升序索引,还是需要对所有 1000 多个类别 * 键进行索引?有没有更好的方法来存储这些信息或更简单的方法来索引它?
最佳答案
怎么样……
rank.categories = [1, 2, 425];
rank.category = {
1 : 1,
2 : 13,
425 : 50
}
您可以索引 db.collection.ensureIndex({"categories":1})
。现在您可以搜索类别并在找到一个时获得每个类别的排名。
关于php - 确保多维数组上的索引索引 mongodb 字段的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41729422/