问题标签 [mongojs]

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 回答
97 浏览

javascript - 在回调中终止 mongodb 连接

我只是在学习 mongojs 和 nodejs,所以我仍在尝试习惯异步编程。我的程序应该做的是从文件(“列表”)中获取输入,读取每一行并将该行传递给解析函数,该函数将数据写入文件并将数据写入数据库。

这是我的 index.js:

read_list.js:

最后是 parse.js:

希望这是有道理的并且是可读的,我在这里的第一篇文章。

一切都按我的预期执行,除了程序不会终止(必须用 ctrl+c 来完成)。如何更改程序以便我可以在回调中关闭连接,或者我是否错过了重点并以错误的方式进行此操作?

0 投票
1 回答
839 浏览

javascript - Mongojs打印和console.log不工作

我正在运行以下命令,我想在我的 out.log 文件中查看输出,但它没有打印任何内容。

这些是我的 test.js 中的内容

它给出错误:调用失败:JS 错误:未定义控制台。所以它删除了console.log。但它仍然不使用打印功能打印。谢谢。

0 投票
2 回答
4508 浏览

node.js - NodeJS - Mongoose 比 MongoJS 快吗?

我有一个在 NodeJS 上运行的应用程序,并使用 MongoDB 作为信息数据库。

目前我通过MongoJS模块连接到 MongoDB,该模块旨在“尽可能地模拟官方 mongodb API”。

该应用程序获取大约 20,000 个对象并将每个对象保存到 MongoDB。首先,它查找数据库以查看对象是否已经存在,然后更新现有条目或添加新条目。

这可能很慢。我不确定是不是因为MongoJS是同步/单流(如果它甚至是 - 我不确定!),或者这只是将大量条目写入数据库的现实,但需要 45 分钟到 1 小时做所有这一切,我显然想尽可能地减少它。

我想知道Mongoose是否会是一个更好/更快的选择。显然它是异步的,我不知道这是否会对性能产生影响。

0 投票
1 回答
1168 浏览

javascript - MongoDB:$push 到基于变量内容的数组中

我正在尝试将$push项目添加到我的记录中(使用MongoDB),如下所示:NodeMongoJS

这行得通,除了函数将“param: bar”而不是“foo: bar”推送到我的记录(参见上面的评论以了解 this 的含义)。

我尝试过$push: {eval(param):value}在黑暗中尝试做这件事,但无论如何都没有用。实现这一目标的最佳方法是什么?

0 投票
1 回答
41 浏览

mongodb - 在不知道键名的情况下迭代 reduce 函数

我有一个地图功能:

发射(this_id,this),

现在我想遍历reduce函数中的每个键,这是我可以解决这个问题的一种方式,不知道如何继续。

0 投票
1 回答
272 浏览

javascript - 为什么我的 express.js 不能运行?

我有一个 express.js 应用程序可以解决这个问题:

它不会再进一步​​,如果有人能解释为什么会发生这种情况以及如何解决它,将不胜感激。我相信错误出现在我的 app.js 中,它发布在此处:

0 投票
3 回答
458 浏览

javascript - Coffeescript 类查找或创建 mongo 文档

我正在尝试编写一个咖啡脚本类,当从中构造一个新对象时,它会检查是否传递了一个 ID。如果是这样,请尝试查找匹配的文档并从中填充对象。如果没有传递 ID,则生成一个新 ID 并创建一个新文档。我mongojs用来连接到我的 mongodb。但是,当我从 TestObject 类创建一个新对象时,它会引发一个错误,即集合名称需要是一个字符串。我在该类上将@collection 设置为字符串,因此我控制台记录了@collection 属性及其未定义。这里发生了什么,我怎样才能使这项工作?

编辑

重读我的代码,很明显这是构造函数和 @collection 在 MongoObject 中未定义的问题。有没有更好的方法来做到这一点?我可以创建一个setupDB方法并在每个类的构造函数中调用它,该构造函数在超级调用之后扩展 MongoObject,但不是我所希望的。

编辑 2

我修改了我的代码。但是,我现在收到一个constructor未定义的错误。当我查看已编译的 javascript 时,它指向constructor;MongoObject 代码的顶部。奇怪的是,coffeescript 没有放var constructor;,这通常是发生的。我发布了翻译后的 javascript 仅供参考

咖啡脚本

Javascript

编辑 3

根据我的评论更新了我的代码。它的说法@constructor.collection是未定义的

我假设它是因为它在保存的回调函数中。前进一步,后退两步。

修改后的代码

0 投票
2 回答
7775 浏览

node.js - MongoDB 和 MongoJS - 无法让 runCommand 用于文本查询

我的目标是使用来自 Node.js 的 MongoDB(2.4.4)文本命令。它可以从命令行正常工作。基于这个先前的 SO 问题:Equivalent to mongo shell db.collection.runCommand() in Node.js,我尝试使用 MongoJS (0.7.17) 但无法成功。这是代码:

docs 返回 undefined 并且 err 为空。我可以很好地执行 products.find() 之类的普通函数...并且可以在 MongoDB 命令行上执行搜索。有人知道怎么做吗?

顺便说一句,这是回调中包含的文档:

顺便说一句,如果有另一种方法可以只使用普通的本机驱动程序,我可以接受。

0 投票
1 回答
640 浏览

mongodb - 展开前检查数组类型

我有一个具有以下结构的文档

{testfields:[{"test_id":1,"test_name":"xxxx"}]},

但是,我的应用程序不知道“testfield”是数组还是普通对象,现在如果我在聚合查询中应用“$unwind”并且提交的不是数组类型“mongodb”抛出错误,那无法展开。我想知道他们的一种方法是我可以检查该字段是否为数组类型而不是应用展开,否则将其视为普通对象。

0 投票
1 回答
226 浏览

mongodb - 数组字段的 $type 返回 false

“testfields”:[{“test_id”:1,“test_name”:“xxxx”}]}