mongodb - 找到第一个元素后停止搜索
问题描述
答案可能很简单,但我找不到:
我有这个管道
return (await Blog.aggregate([
{ $limit: 1 },
{ $match: { _id } },
{
$lookup: {
from: User.collection.name,
localField: "author",
foreignField: "_id",
as: "author"
}
},
{
$unwind: "$author"
},
{
$set: {
author: "$author.author"
}
},
{
$project: {
ips: 0
}
}
]).exec())[0]
我添加$limit
到 1 是因为我认为它会在找到 1 后停止搜索元素。但搜索仅限于 1 个元素。
这意味着如果有 10 个元素,则只有第一个元素会被扫描,因为$limit
1。
我该如何优化这条管道?
解决方案
只需将 $limit 阶段放在 $match 阶段之后,就可以了。
推荐阅读
- outlook - Office Js:Outlook 插件对话 api 在 Outlook 客户端中不起作用
- google-chrome - autohotkey, to go a tab in chrome
- python - WinError 126 The specified module could not be found, when importing scikit-learn package?
- webpack-hmr - webpack-dev-server 热重载不适用于 webpack4
- java - 在 java 8 中迭代值为 List 的映射
- r - 如何创建按变量分层的高级ggplot?
- http - HTTP SEARCH 方法是否标准化?
- solr - solr搜索中的两个csv
- python - 如何使用 python 脚本从文件中获取特定数据?
- javascript - 在打字稿中的一组对象上展开运算符