请给我一个建议,我如何解决我的问题。 我有一个包含超过500万份文档的MongoDB集合“卡片”。 这是我的集合中的typycal文档的例子
{
"_id" : "300465-905543",
"products" : "00000",
"groupQuality" : {
"defQuality" : 100,
"summQuality" : 92.22
}
}
我需要计算一些产品的数量并且具有一定的质量价值,所以我试图使用这样的东西
db.cards.count({groupQuality.defQuality : {$gt : 50, $lte : 100}})
为了提高此操作的速度,我创建了索引{groupQuality.defQuality:1} 这是一个很好的决定,文件计数快速返回,但在添加到名为“groupQuality”的嵌入文档后,还有一组质量我必须为该组创建另一个索引。 新质量组的数量可能很大,所以我不希望每个新质量组都有构建索引。 我开始考虑创建索引{groupQuality:1},这将使嵌入文档中的所有质量组得到畏缩。 MongoDB有可能吗? 如果我可以创建这样的索引,我怎样才能使用某些产品来计算文档,并且在使用index by groupQuality的情况下具有一定的质量价值? 我尝试了下一个查询,但它总是返回0.
db.cards.count({ products : "00000", groupQuality : { defQuality : {$gt : 50, $lte : 100}, summQuality : {$gt : 0, $lte : 100}}})
我的错误在哪里?
答案 0 :(得分:1)
如果您有嵌套字段,则需要为匹配的每个字段提供完整路径,而不是提供嵌套文档:
db.cards.count({
"products" : "00000",
"groupQuality.defQuality" : {$gt : 50, $lte : 100},
"groupQuality.summQuality" : {$gt : 0, $lte : 100}
})