php - 确保多维数组上的索引索引 mongodb 字段的正确方法是什么?

标签 php mongodb multidimensional-array mongodb-query

我在 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/

相关文章:

php - 基于名称的下一个和上一个 MySQL 行

mongodb - 将对象数组内的 int 数组字段连接到 mongodb 聚合中的一个字符串字段

javascript - 使用 socket.io-mongodb 获取计数集合

mongodb - 数据仓库中的分期步骤?

php - 为什么我的 PHP 函数没有产生任何输出?

python - 根据另一个数组中包含的索引有效地求和 4D 数组

php - 使用构造函数创建新对象时出现 undefined variable 错误

php - 使用 php 将 mysql 查询导出到可下载的 .csv 文件

c++ - 将 float 的复制数组设置为多维数组

php - 使用 PHP 连接到 mySQL,连接昨天有效,但今天不行