gpt4 book ai didi

mongodb - 向 MongoDB 集合哈希字段添加索引

转载 作者:可可西里 更新时间:2023-11-01 09:32:22 24 4
gpt4 key购买 nike

我有一个 MongoDB 集合,我想为其添加索引。出于本文的目的,假设集合名称是 Cats。我在 Cats 集合上有一个散列键,所以如果您执行 db.cats.findOne();,它将如下所示:

> db.cats.findOne();
{
"_id" : ObjectId("4f248f8ae4b0b775c9eb002d"),
"metaData" : {
"type" : "cute",
"id" : "4ed3b6c599114b488be52bc3"
},
....
}

我经常查询(使用 Mongoid),像这样:

Cat.first(:conditions => { "metaData.id"=> an_id }

我真的很想在这里利用索引,但我不完全确定我是应该索引所有的元数据还是只索引 metaData.id(我专门针对 id 进行查询,而且非常频繁)。

会喜欢这个问题的任何解决方案,因为我认为如果我在这里做正确的事情,我可以大大加快查询速度。此外,这是一个唯一索引。

元数据也不是嵌入式文档。它没有自己的收藏。它只是一个在每个猫对象中具有 1:1 映射的散列。

最佳答案

您可以只在嵌入文档上定义一个索引。这在此处介绍:

http://www.mongodb.org/display/DOCS/Indexes#Indexes-UsingDocumentsasKeys

对于您的具体示例,这将是:

db.Cats.ensureIndex({ "metaData.id" : 1}, {unique : true})

要比较您的结果,请在 shell 中使用 .explain() 执行一些标准查询,以比较使用和不使用索引的速度。如果你没有做很多查询,你可能需要提示要使用的索引,这样它就不会缓存“最佳”索引(不要忘记默认情况下 _id 上有一个)。更多解释信息在这里:

http://www.mongodb.org/display/DOCS/Explain

关于mongodb - 向 MongoDB 集合哈希字段添加索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9320582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com