问题标签 [nosql-aggregation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1156 浏览

mongodb - MongoDB查询以获取具有外部链接文档计数的文档列表

我有一个 mongodb 数据库,其中包含大约如下的集合文档:

一个用户有很多书,而一本书有很多页。每个实体都是一个单独的文档的原因是因为用户可以拥有数千本书,而一本书可以有数千页,所以,如果所有内容都在一个文档中,我们可以很容易地达到 16MB 的限制。

userId检索每本书指定pageCount字段的书籍列表的最佳方法是什么?

这是我需要的 json 结果。

使用连接计数非常简单的 SQL 数据库,但是使用 mongodb 除了进行单独的查询以获取书籍列表然后获取每本书的页数之外,我看不到任何简单的解决方案。

0 投票
0 回答
21 浏览

mongodb - 如何在 MongoDB 中加入查询(不是集合)?

我有多个查询,它们都有一个共享的 ID。

我正在尝试将这些查询加入到单个输出中,但似乎无法弄清楚。

有任何想法吗?谢谢!


集合包含客户和卖家(每个人的 ID、销售日期等)。预期的输出是包含(卖家 ID、买家 ID、卖家出售商品的次数、卖家已出售给不同客户的数量、卖家已出售给不同客户的数组、交易 id 数组)的输出。

我已经能够查询每个组件,例如:

卖家已出售给的卖家 ID 数组

卖家的销售数量

我正在尝试使用sellerId 将这些查询连接在一起。

0 投票
0 回答
971 浏览

mongodb - 子文档中同一集合中的 mongodb 聚合和 $lookup

我有以下结构:

我想使用聚合函数检索以下用户的信息。

我的要求是这样的:

我在输出中得到一个空的订阅字段:

我不明白为什么订阅字段是一个空数组并且没有填充用户信息。

有谁知道问题是什么以及我如何让它工作?

0 投票
0 回答
110 浏览

node.js - 有没有更好的方法在Nodejs中加入MongoDB中的两个集合

我正在将nodejs与mongodb一起使用。
我们的团队目前正在构建一个简单的 android 社​​区应用程序。
由于我是服务器程序员,我想知道是否有更好的方法使用 mongodb 处理数据库。

在应用程序的应用程序图像

上图显示了我们的应用程序。
当用户点击一篇文章(左图)时,应用程序将移动到文章页面,其中包含文章的内容(右图的①标记)和文章的评论(右图的②标记)

我们成功地创建了这些应用程序。
但是有一个严重的问题:响应时间慢

应用程序通过每两个 POST API 带来数据。
一个是/selectBoardArticle加载文章的内容,另一个是/selectCommentList加载文章的全部评论。需要请求带文章的数据。

一些开发人员说两个请求导致了极长的响应时间。所以我正在尝试集成/selectBoardArticle/selectCommentList API。

我知道整合两个集合的数据的两种选择。
首先,使用 db.collection.aggregate 函数。
这是/selectBoardArticle API的源代码


二、找到每篇文章和评论数据,通过javascript将评论数据插入到文章数据中

虽然这个 API 返回文章列表,但我想说的概念是两次查找并通过 javascript 插入子数据。

我发现处理加入集合的问题很少。

第一个问题

我觉得不推荐使用 mongodb 作为关系数据库。

MongoDB 背后的想法是消除(或至少最小化)关系数据。 https://stackoverflow.com/a/8129650/5593805

如果我理解正确,我应该避免加入收藏。
但我找不到避免加入收藏的方法。
我应该将两个集合集成到一个集合中吗?
当有人经常在 mongodb 中使用聚合时,我认为使用关系数据库会更好。
我想知道您对此有何看法。

第二个问题

在 mongodb 中加入两个集合。
与关系数据库相比,我必须编写非常复杂的代码。更具体地说,mongodb需要非常长而复杂的join查询,可以在mysql中通过JOIN查询轻松直观地完成,不利于维护。
我想知道在nodejs中加入mongoDB中的两个集合有没有更好更有效的方法?

0 投票
1 回答
742 浏览

javascript - 在 mongodb 中查找外部字段的组

我有两种不同的模型:

  • 促销活动
  • 标签

每个促销都有一个引用标签 ID 的字段。这在我的架构中被引用并且工作正常:

我的问题是如何创建一个自定义响应,按标签对所有促销进行分组?像这样的东西:

现在,我正在使用 Vanilla Javascript 进行所有促销和过滤。我需要知道如何使用 Mongoose 来改进它。

0 投票
2 回答
927 浏览

azure - 无法获取标识符和最大值 CosmostDb

我想对我的 CosmosDb 做一些报告

我的查询是

那行得通,但我想要最高分的 id 然后我得到一个例外

'c.id' 在选择列表中无效,因为它不包含在聚合函数中

0 投票
0 回答
57 浏览

database - MongoDb groupby 计数查询

在此处输入图像描述 我有一个 mongoDB 文档,其中包含某些列,例如 Id、EmployeeID、SiteID、EmployeeAddress。一名员工可以多次出现在一个站点。我想通过查询和计数进行分组,这将使结果集为

EmployeeID SiteID Count EmployeeAddress

基本上,员工作为站点出现的次数。我正在使用此查询,但没有获得所需的数据。

0 投票
2 回答
478 浏览

mongodb - 如何在MongoDB中查询子子文档?

这是我正在处理的文档的示例:

我想查询“prix”字段的最大值。我还需要按'revendeur'列出所有'prix',但Mongodb只返回空结果。

执行此查询时:

我得到了这个结果(而不是最多只得到 200 个)

0 投票
1 回答
691 浏览

hbase - 为什么 HBase 全扫描和聚合比 parquet 慢,尽管它也是列式数据库?

我一直在尝试将“正确”技术用于 360 度客户应用程序,它需要:

  1. 一个宽列表,每个客户是一行,有很多列(说> 1000)
  2. 我们每天运行约 20 个批量更新分析作业。每个分析作业查询并更新一小组列,用于所有行。它包括聚合用于报告的数据,以及为机器学习算法加载/保存数据。
  3. 我们在几列中更新客户的信息,每天 <= 100 万行。更新工作量分布在工作时间。我们有超过 2 亿行。

我尝试过使用 Hbase,第 1 点和第 3 点都满足了。但我发现在 HBase 上进行分析(加载/保存/聚合)非常慢,可能比 Parquet 慢 10 倍。我不明白为什么,Parquet 和 Hbase 都是柱状数据库,我们已经很好地分散了 HBase 集群中的工作负载(“每个区域的请求数”这样说)。

有什么建议吗?我是否使用了错误的工具来完成这项工作?

0 投票
1 回答
163 浏览

database-design - Cassandra 是否在内存中,即 100% 的数据是缓存?

在 cassandra 中,sstable 存储在磁盘上,而 memtable 在缓存中,所以从 sstable 到 memtable 是否有 100% 的转换,即如果有 10 GB 的 sstable,那么它需要 10 GB 的内存吗?