MongoDB在数组中查找项目以及如何正确索引

时间:2016-01-27 20:31:59

标签: mongodb

我的文档存储如下:

{
    ...
    "users" : [ 
        {
            "id" : "123456",
            "username" : "John",
            "address" : "fake st",
        }
    ],
...
}

使用用户名" john"检索所有文档的最佳方法是什么?此外,考虑到它在数组内部,为性能建立索引的正确方法是什么。我想索引"用户",还是有更好的方法?这是一个包含5000多万份文档的数据库。

1 个答案:

答案 0 :(得分:0)

要查找users数组中至少包含一个“john”的所有文档,请使用db.collection.find({"users.username":"john"});

为了加快速度,请使用db.collection.createIndex({"users.username":1});创建索引。 MongoDB中的索引可以到达内部数组并索引单个数组条目(这称为multikey index)。