选择 2 个字段并返回一个具有不同值的排序数组

2023-12-09

假设我们有以下文档:

{a: 1, b: 2},
{a: 2, b: 0},
{a: 3, b: 1}

我想要一个将返回的查询:

[0, 1, 2, 3]

我想知道是否有一种方法可以比以下更快地做到这一点:

  • 只需进行 2 个查询,其中一个选择a,另一个选择b然后合并到我的应用程序中。
  • 使用map reduce(与之前的方法相比,速度非常慢)

你需要$group我们的文件并使用$push累加器运算符返回集合中“a”和“b”的数组。

In the $project您使用的运算符$setUnion运算符过滤掉重复项。

db.coll.aggregate(
    [
        { "$group": { 
            "_id": null, 
            "a": { "$push": "$a" }, 
            "b": { "$push": "$b" } 
        }}, 
        { "$project": {
            "_id": 0, 
            "merged": { "$setUnion": [ "$a", "$b" ] } 
        }} 
    ]
)

其产生:

{ "merged" : [ 3, 2, 0, 1 ] }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择 2 个字段并返回一个具有不同值的排序数组 的相关文章

随机推荐

  • Struts 2 标签的评估似乎不一致

    我对一些与 OGNL 混合的 Struts2 标签有疑问 为了克服不能在 OGNL 中嵌套表达式求值的事实 例如 foo bar 我使用对变量的连续赋值来获得我需要的结果 在下面的代码中 vargrpIndex评估正确 例如 6 or 7
  • 如何将 SearchBox 集成到 Google Maps JavaScript API v3 中?

    我想创建一个顶部带有搜索框的谷歌地图 如下所示 https google developers appspot com 使用 JavaScript API v3 目前 我使用以下代码通过获取 url 中的纬度和经度 php get 来显示地
  • 在Linux服务器上运行用java编写的计划任务

    我需要每天在特定时间在Linux服务器上运行一段java代码 目前 我正在 Ubuntu 桌面上通过从终端运行它来测试它 并根据需要正常运行 为了安排时间 我使用了来自here 在实际服务器上 将其作为进程运行的正确方法是什么 我的意思是
  • Android 加速度计检测高度?

    是否可以使用加速度计来检测高度 例如 如果我手上拿着手机 然后抬起手臂后检测高度 Thanks 假设您的意思是您想要检测手机从起始点抬起的高度 是的 Android 加速度计测量力 有关如何使用它的更多信息可以找到here 请记住 加速度计
  • 使用 PowerShell 和 OData API 将文件上传到 SharePoint 2010

    我正在尝试将文件上传到 SharePoint 2010 Function Add Attachments CmdletBinding Param Parameter Mandatory True int Id Parameter Manda
  • 在java脚本和CSS中构建带有圆角和阴影的半圆形进度条

    我搜索了很多 但一无所获 我想制作一个进度条圆角 进度条需要有shadow 我现在所做的一切都在这里 progress bar each function var bar this find bar var val this find sp
  • 用于解析单个句子的正则表达式是什么?

    我正在寻找一个好的 NET 正则表达式 可以使用它从文本正文中解析出各个句子 它应该能够将以下文本块解析为正好六个句子 Hello world How are you I am fine This is a difficult senten
  • 如何获得 xPy 的所有排列?

    我想计算一组大小 X 的大小 Y 的所有排列 也就是说 如果我有 1 2 3 并且想要大小 2 3P2 的所有排列 那么它将是 1 2 1 3 2 1 2 3 3 1 3 2 GSL和C STL都只提供我能看到的xPx 有人能给我指出一个可
  • Eclipse:Android 依赖项

    我已将项目中的 Google AdMob 从 6 2 1 更新到 6 4 1 但不知何故 eclipse 失败 你可以在这里看到它 这是错误消息所需库的存档 项目 中的 C Users libs GoogleAdMobAdsSdk 6 2
  • 递归评估 JSON 对象

    我们正在使用 JSON 库https github com octomix josson 我的示例 JSON 对象 data A 1688 B 1363 C calc A B A data A B data B D calc B C B d
  • C# 将 delphi TColor 转换为颜色(十六进制)

    这些数字存储在数据库中 它们源自 Delphi 代码 尽管我认为他们遵循某种标准 我努力了Color FromArgb 255 但我知道第一个是红色 在 delphi 方面 而在 ASP NET 中它认为它是蓝色的Color A 0 R 0
  • VB 中的 shell 命令

    由于某种原因 当我尝试在 VB 的 shell 命令中使用 符号时 它们似乎没有像应有的那样工作 当我尝试使用与符号在同一行上将两个命令链接在一起时 我收到错误 filenotfoundexception 未找到未处理的文件 我尝试运行的命
  • 如何从片段中的工具栏在列表视图中搜索

    我使用此代码从 ListView 中的 MainActivity 工具栏进行搜索 SearchView searchView Override public boolean onCreateOptionsMenu Menu menu get
  • 为什么 Cython 强制在函数开头声明局部变量

    这是作为评论提出的Cython 复制构造函数 以下代码无法在 Cython 中编译 def bar int i if i 0 return i else cdef int j j i 1 return j 而这个是完全正确的 def foo
  • Java垃圾收集器如何处理自引用?

    希望是一个简单的问题 以循环链表为例 class ListContainer private listContainer next lt gt public void setNext listContainer next this next
  • 如何读取AngularJS中的响应头?

    我的服务器返回这种标头 Content Range 0 10 0 我尝试以角度阅读此标题 但没有成功 var promise http get url params query then function response console
  • 如何使用 Python Discord 机器人发送附件

    我希望我的机器人在调用时将文件 不一定是图像 可以是文本文件 发送到通道 这是我的代码片段 bot command pass context True async def send ctx area ctx message channel
  • 如何在 IPython Notebook 中隐藏一个特定单元格(输入或输出)?

    有没有一种方法可以有选择地隐藏 IPython 笔记本中的一个特定输入或输出单元 我只能找到下面的代码来显示 隐藏所有输入单元格 http blog next Genetics net e 102 但是 如果我只想隐藏笔记本的第一个输入单元
  • 单击VBS中包含特定字符串的链接

    我正在尝试运行一个自动 vbs 脚本 单击页面上的链接 我有以下形式的东西 Const READYSTATE COMPLETE 4 Set IE CreateObject INTERNETEXPLORER APPLICATION IE Vi
  • 选择 2 个字段并返回一个具有不同值的排序数组

    假设我们有以下文档 a 1 b 2 a 2 b 0 a 3 b 1 我想要一个将返回的查询 0 1 2 3 我想知道是否有一种方法可以比以下更快地做到这一点 只需进行 2 个查询 其中一个选择a 另一个选择b然后合并到我的应用程序中 使用m