问题标签 [mongodb-nodejs-driver]

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 投票
1 回答
26 浏览

node.js - Mongodb 仅在存在时查询

仅当字段 'deleted_by_userid1' 不存在时获取聊天 ID 'userid1_userid2' 的最后一次聊天

0 投票
0 回答
41 浏览

mongodb - Mongodb 性能 - 批量更新与串行更新与串行获取和更新

node.js中的应用程序有一个后台作业,该作业在几天内运行一次,并且:

从第 3 方接收数十万个输入对象。

对于每个输入对象:

如果mongodb中存在对应的文档,并且文档中不存在字段X,则将字段X添加到该文档中。

笔记:

  • 这个流程是一个后台同步,它的结果不是实时的,所以我们不关心这个工作会花费很多时间。

  • 通过 _id 从 mongodb 查询文档。

  • 使用 mongodb WiredTiger。

  • 假设 mongodb 中的文档数量约为 100 万。

  • mongodb 中将存在高比例的输入对象对应文档。

  • 我们预计,当这个流程运行时,在某些情况下,高百分比的文档将满足更新条件,而在某些情况下,高百分比的文档将不满足更新条件。

假设主要目的是:

  • 准确的更新

  • MongoDB性能

运行此流程的最佳方法是什么 - 在 mongodb 中处理一批文档或在 mongodb 中分别处理每个输入对象?

如果答案是在 mongodb 中处理批处理,例如:

  1. 在这种方法中存在单点故障。

  2. 哪种批量大小是最佳的?

  3. 如果高比例的文档不满足更新条件,是否会影响我们正在进行更新查询的 mongodb 性能(而不是从 mongodb 中获取并在应用程序中决定不需要更新)?在这种情况下,锁将如何工作?未更新的文档会被锁定吗?

如果答案是在 mongodb 中分别处理每个输入对象

  1. 是首选阅读每个文档,然后仅在需要时更新,还是只运行有条件的更新查询(相同的性能问题)?

  2. 应用程序应该并行运行单个对象处理函数以处理一批输入对象,还是串行运行?

谢谢!

0 投票
1 回答
58 浏览

node.js - 如何在双嵌套数组中添加或删除元素?

文档示例:

如果用户不存在,我想添加userid,如果存在,同样删除。likesOnReplylikesOnReplyuseridlikesOnReply

我试过这样但不能正常工作

0 投票
0 回答
112 浏览

node.js - 如何在 MongoDB 中引用集合内的文档

帖子集合中的文档示例

我想以这种方式查询这篇文章,以便无论用户标识来自哪里,我都想从匹配的用户标识集合中替换它。

这可能是这样的查询吗?或者我是否需要在插入文档时进行引用。我不想通过执行多次循环来一一替换用户标识。

预期产出

0 投票
1 回答
220 浏览

typescript - 如何在连接打开一次的打字稿中建立mongodb NodeJS驱动程序连接

我不断收到连接超时或此电子邮件您收到此警报电子邮件是因为与您的集群的连接已超过 500,并且已接近项目中 M0 集群 Cluster0 的连接限制 ------ 在组织内 -- ----- 组织 - ------。请重新启动您的应用程序或登录您的 Atlas 帐户以查看一些建议的解决方案。

这是我的连接

现在我的问题是每次我调用连接到数据库时都会创建一个新连接,我希望创建一个连接,随后调用 connectToDatabase 将使用现有连接

这我可以用下面的代码用javascript做

0 投票
2 回答
176 浏览

mongodb - Mongodb更新管道更新嵌套数组中元素的字段

我有一个包含诸如此类的对象的集合。

如您所见,库存是层次结构深处的一个数组。我想更新amount它的领域。

我从客户端收到材料 ID ( "m1") 和库存索引 ( 0)。

我必须使用更新管道,因为我正在设置和取消设置本文档中的其他一些字段。

这是我尝试过的:

但它会在第 0 个元素内创建一个名为 0 的新字段,并设置该amount对象的内部。所以生成的文档看起来像这样。

而我想要的是:

我确定要更新数组中哪个元素的唯一方法是它的索引。

我正在使用 nodejs mongodb 驱动程序。如何编写$set此更新管道的阶段?

0 投票
1 回答
777 浏览

node.js - MongoDB watch 随机崩溃(Cursor session id 与操作上下文的 session id 不一样)

我正在使用官方节点驱动程序连接到我的 MongoDB。

我正在尝试查看特定集合和特定文档的更改。两种方式都遇到此错误。

我的代码大部分时间都运行良好,但有时在空闲时它会随机使我的整个应用程序崩溃。我想了解为什么会发生这种情况,并抓住错误,这样它就不会破坏我的整个应用程序。不幸的是,它从不指向我代码中的特定行。

这是我的代码之一(简化):

这给了我这个错误:

我还有其他代码,偶尔也会以同样的方式崩溃:

如果有人能解释为什么会发生这个错误,或者当它发生时如何捕捉和修复观察者,那就太好了。

0 投票
1 回答
695 浏览

node.js - 没有使用 mongoose 6 定义的 DEFAULT 的 AuthProvider

使用 Mongodb nodejs 驱动程序版本 4 更新到 Mongoose 6 时,出现以下错误:

我没有设置任何身份验证(这是我的本地开发环境),所以我不明白问题出在哪里。以下是相关的连接代码:

0 投票
2 回答
48 浏览

javascript - How would I know if "err" argument is needed in the callback?

I am a beginner in mongodb and javascript.

I have here a code for simple find method in Mongodb Nodejs. This code does not work.

The solution is to change the last line to this: cursor.limit(10).toArray((err, docs) => console.log(docs));.

What I do not understand is why do I need to include the err argument here? Here is the documentation for toArray method. It does not say here that err parameter is needed. How would I know that err argument is needed here or in other methods?

Thank you very much! I think this is a very basic concept and I will appreciate any input.

0 投票
2 回答
31 浏览

node.js - 无法获得与 nodejs 的 mongodb 连接

我在nodejs中试过这个,但我在控制台中得到未定义的输出

我在 mongodb 中有数据: 在此处输入图像描述

我如何在我的控制台中获取我的员工详细信息 任何帮助将不胜感激