【发布时间】:2020-06-28 01:37:26
【问题描述】:
我目前正在努力为我的查询实现索引。 这是原始查询:
*db.getCollection('products').aggregate([
{ $unwind: "$categories" },
{ $unwind: "$categories"},
{$group: {"_id": "$_id","title": {$first:"$title"},
"asin":{$first:"$asin"},
"categories": { $push: "$categories" }} },
{ $match: { "categories": { $in: ['T-Shirts']}} },
{ "$project":{ "_id": 0, "asin":1, "title":1 } } ])*
这是我当前的索引代码:
*var cursor =
db.products.explain("allPlansExecution").find(categories:{"T-Shirts"},{ categories:1, title:1, asin:1, _id:0,})
while (cursor.hasNext()) {
print(cursor.next());
}*
当我运行索引代码时,我应该得到 nReturned 为 8,当前为 0。
有人可以指导我如何做到这一点吗?或者有人可以告诉我他们会添加什么吗?
【问题讨论】:
-
我们可以看一个示例文档吗?
$categories需要解开两次吗? -
是的,因为“T-shirts”你只需要放松一次就找不到了”
-
那么
categories是一个数组数组? -
关于indexes。另外,发布一个示例文档,并说明您想要通过聚合实现什么。
-
是的 category 是一个数组数组。
标签: mongodb indexing mongodb-query mongodb-indexes