问题标签 [mongo-collection]

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 投票
2 回答
3198 浏览

json - 如何使用 python 从 MongoDB 中的 2 个集合中查找数据

我需要在 Python 中从 MongoDB 读取 2 个集合数据,有没有办法在 python 中加入数据?

0 投票
0 回答
458 浏览

mongodb - Mongo db.stats 显示集合存在,但显示集合返回空

我在服务器:27017 上运行了一个 mongodb。

从另一台机器上,我安装了 mongo-client 并连接到在服务器上运行的 mongodb。

我在 mongo 中有三个 db:admin、local 和 template(这些是由脚本为我创建的)。

当我做:

我得到:

但是,如果我这样做

或者

我什么都得不到。

这是什么意思?为什么有一个带有索引和对象的数据库,但没有集合,为什么模板数据库中的集合计数> 0,但显示集合没有返回?

0 投票
1 回答
162 浏览

phalcon - Phalcon mongodb 无法更新

我无法使用 Incubator 3.3 中的 Phalcon MongoCollection 更新文档我在 save() 后没有收到任何错误,但数据没有更新。

我的代码是:

我也试过孵化器 3.4 和 3.2

0 投票
0 回答
37 浏览

java - 无法删除 MongoDB 集合中的所有记录

编辑重复
我知道其他问题中解释的方式有效,但我问的是不同的东西,这就是为什么我使用的方法在应该的时候不起作用

这个问题之后,我尝试通过这样做来删除我的集合中的所有文档:

问题是它给了我方法错误并告诉我

同样在当前版本的文档中,方法是相同的。怎么了?我知道我可以使用一些“替代方法”,比如指定一个空文档,但我想知道我在使用这种方法时哪里错了。

编辑
我也试过这个,正如已经说过的:

但不工作。
我知道我可以使用BasicDBObject document = new BasicDBObject();它并将其传递给实际上是我现在正在做的事情并且它可以工作,而且 DBCursors 也是一种替代方法,我只是问为什么上述方法在它应该工作时不起作用(deleteManycollection.deleteMany(document);也许这一切都错了,在这一点上根本不应该?)。

0 投票
2 回答
5405 浏览

java - MongoDB Java 使用多个过滤器并排在最后

在我的收藏中,文档如下所示:

在此处输入图像描述

通过这样做,我设法获得了最后插入的文档:

但是现在我需要得到最后一个按日期并且有一个特定值的functionalityName. 我被卡住了,因为我不知道如何修改它以考虑两个过滤器。我怎么做?
我查看了 Mongo 中的多个过滤器,但由于我不是在寻找特定日期,而是在寻找更大的日期(最后一个),所以我不知道如何与其他过滤器一起指定它。

0 投票
2 回答
312 浏览

node.js - 仅当新的 providerId 不存在时才更新 MongoDB 字段值

我在 MongoDB 中有以下文档。

我不确定如何在 providers 数组中检查新的 providerId,如果不存在,则使用单个查询操作进行更新。所以首先我需要检查一个特定的 providerId 是否存在,如果不存在则更新 providers 字段,否则忽略它。

我该如何实施?

0 投票
1 回答
29 浏览

mongodb - MongoCollection.find() 搜索两次?

我正在使用如下所示的代码:

由于collection.find() 在这里被调用了两次,那是在数据库上执行2 次搜索还是因为它返回一个FindIterable,它只是一个光标???

我们仅限于限制数据库操作并避免尽可能多的操作,因为我们按请求单位付费

0 投票
1 回答
764 浏览

mongoose - MongoError:不支持聚合阶段:'$changeStream'

我们有一个文档数据库的分片集群,托管在 AWS 上并使用 mongo db 版本 3.6,我们希望在 node.js 代码中实现一个 collection.watch() 函数来获取更改流,只要集合中有更改。当我连接在副本模式下运行的本地主机 mongodb 服务器时,它工作正常,我正在节点 js(客户端)中获取更改流,但是当我尝试连接到 AWS 上托管的文档 db 分片集群时,我得到了错误MongoError:不支持聚合阶段:'$changeStream'

我以复制模式连接了在 localhost 端口(27001 和 27002)上运行的本地 mongo db 服务器,它工作正常,但是在连接到 AWS 托管的文档数据库集群时,它给出了如上所述的错误。

这是我用来连接到文档数据库集群的代码。

建立连接后,我使用下面的代码来实现 watch 函数来查找 changeStream。

我在下面的行中遇到的确切错误

错误是“MongoError:不支持聚合阶段:'$changeStream'”

确切的错误堆栈跟踪:

我的问题在这里,有人见过这种错误吗?错误的可能根本原因应该是什么?我可以在 mongodb 集群端验证一些东西,这可以帮助纠正这个错误。我期望 changeStream 打印在 console.log(change) 中,而不是打印它会抛出这个错误。

任何帮助将不胜感激。

谢谢!

0 投票
2 回答
1170 浏览

java - 如何在没有 Java 中的 NumberLong 或 Date Wrapper 的情况下从 Mongodb 接收日期

目前,我正在开发一个我从/向客户Java/Spring App保存和提供的地方。JSON

我以毫秒为单位将我的日期信息存储为 Unix 时间戳。现在 MongoDB 自动将其存储为

当我插入

我还读到,当我使用该格式时,会发生这种情况$Date而不是 $numberLong 。iso8601

是否可以在我的查询结果中没有此包装信息的情况下从 MongoDB 读取时间信息?

处理/删除接收普通时间戳信息的信息对我来说似乎很不舒服。

编辑:当我使用 document.toJSON (我知道它已被弃用)时,我得到

当我使用 document.toString() 我得到 TimeStamp=Document{StartTime=1549554150000}

0 投票
1 回答
196 浏览

java - 更新元数据后发现不适用于 GridFS

我在我的应用程序中添加了一个步骤以通过 GridFS 持久化文件,并添加了一个名为“已处理”的元数据字段作为计划任务的标志,该任务检索新文件并将其发送以进行处理。由于 GridFS 的 Java 驱动程序没有允许更新元数据的方法,因此我使用 MongoCollection 将“fs.files”集合更新为“metadata.processing”为真。

我使用 GridFSBucket.find(eq("metadata.processed", false) 获取新文件进行处理,然后在处理完成后将 metadata.processed 更新为 true。如果我在应用程序运行时添加新文件,这将有效。但是,如果我有一个将“metadata.processed”设置为 false 的现有文件并启动应用程序,上面的 find 调用不会返回任何结果。同样,如果我有一个已经处理过的文件并且我设置了“metadata.processed”字段回到 false,上面的 find 调用也停止工作。

知道我能做些什么来确保:

返回现有文件和/或已更改元数据的文件的正确结果?