我的文档存储如下:
{
...
"users" : [
{
"id" : "123456",
"username" : "John",
"address" : "fake st",
}
],
...
}
使用用户名" john"检索所有文档的最佳方法是什么?此外,考虑到它在数组内部,为性能建立索引的正确方法是什么。我想索引"用户",还是有更好的方法?这是一个包含5000多万份文档的数据库。
答案 0 :(得分:0)
要查找users数组中至少包含一个“john”的所有文档,请使用db.collection.find({"users.username":"john"});
为了加快速度,请使用db.collection.createIndex({"users.username":1});
创建索引。 MongoDB中的索引可以到达内部数组并索引单个数组条目(这称为multikey index)。