问题标签 [monk]

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

node.js - 如何使用僧侣和节点从 mongodb 集合中获取项目列表

我目前无法从我的 mongodb 集合“媒体”中获取任何具有属性“标题”和“作者”的内容(其中包括,但为了说明目的,这只是两个)。以下代码打印“未定义到控制台”。

此外,当服务器启动时,我在控制台中收到以下消息:

“{ [错误:找不到模块'../build/Release/bson'] code'MODULE_NOT_FOUND'} js-bson:使用纯JS版本加载c ++ bson扩展失败”

在 Google 上搜索该错误消息后,我尝试了一些解决方案,包括安装 npm bson。只是我的代码不起作用,还是缺少模块(或两者兼而有之)?

谢谢,

音乐

编辑:按照@hassansin 对异步调用的建议,我尝试了以下操作,现在给了我“无法在 e:\Dev\BookWyrm\api\userRouter.js:16:43 读取未定义的属性 'then'

mongoHandler 是以下模块:

0 投票
1 回答
159 浏览

node.js - 使用唯一 id 选择数组元素在 mongodb 中不起作用

我的应用程序有“帖子”,其中有故事

现在我想从故事数组中的多个故事中选择一个帖子和其中一个故事

我希望它只返回帖子以及具有通过请求发送的故事 ID 的故事,但它返回故事数组中的所有故事

在此处输入图像描述

在这里,我正在获取该帖子的所有故事,因为我只需要具有匹配的 Id 的故事req.body.storyId

检查此问题后,我也尝试使用$elemMatch但仍然得到相同的结果

我也试过

post文件的结构如下

我也尝试使用$unwind

更新 1:我正在使用和尚,因此聚合不起作用

0 投票
1 回答
988 浏览

node.js - MongoDB更新/插入文档并增加匹配的数组元素

我将 Node.js 和 MongoDB 与 Monk.js 一起使用,我想以最小的方式进行日志记录,每小时一个文档,例如:

最终文档:

{时间:YYYY-MM-DD-HH,日志:[{action:action1,count:1},{action:action2,count:27},{action:action3,count:5}]}

应该通过增加一个值来创建完整的文档。

例如,有人在这个小时首先访问了一个网页,并且 action1 的增量应该创建以下带有查询的文档:

{时间:YYYY-MM-DD-HH,日志:[{action:action1,count:1}]}

在这一小时内,其他用户访问了其他网页,并且文档应扩展至:

{时间:YYYY-MM-DD-HH,日志:[{action:action1,count:1},{action:action2,count:1}]}

并且计数中的值应该在访问不同的网页时增加。

目前我为每个动作创建一个文档:

tracking.update({ time: moment().format('YYYY-MM-DD_HH'), action: action, info: info }, { $inc: {count: 1} }, { upsert: true }, function (呃){}

这对mongo.js / mongodb有可能吗?

编辑: 谢谢。您的解决方案看起来干净而优雅,但看起来我的服务器无法处理它,或者我无法让它工作。

我写了一个非常肮脏的解决方案,以动作名称为关键:

tracking.update({ time: time, ts: ts}, JSON.parse('{ "$inc": {"'+action+'": 1}}') , { upsert: true }, function (err) { });

0 投票
4 回答
2269 浏览

mongodb - 使用和尚在 mongodb 中仅选择两个字段

我的文档中有大约 20 个字段

我只想选择 2 个字段并忽略其他字段

我按照这里的建议尝试了以下代码

但它返回所有领域。我只想获得名称和地区。

即我有姓名、地​​区、国家、密码、电话号码、电子邮件ID、照片和许多其他字段。我只想选择名称和地区。

PS我正在寻找除将所有其他字段名称设为0以外的方法

我正在使用和尚

0 投票
1 回答
751 浏览

javascript - mongodb插入是否创建新模式

我有一个已经在运行和存储数据的现有 mongoDB 服务器,可以说它包含集合:“ name ”和“ id ”。我使用insert命令存储这些集合。现在我需要添加一个新集合,让我们说“地址”。我也可以使用简单地添加“地址”集合insert吗?每次我使用mongoDB都会创建一个新模式insert还是只是更新模式?我的意思是,mongoDB 会创建一个包含上面三个的 模式,还是只会用新的模式更新现有的模式?用现有代码更好地解释自己:

现在我想添加一个新参数var env,然后像这样插入:

如果我使用更新后的代码将起作用(假设time_stamp存在):

谢谢!

0 投票
3 回答
190 浏览

mongodb - selecting required fields in mongodb using monk

I am able to retrieve only selected fields in mongodb using Monk using the below method

This works fine, but i am facing issues when i add one more option in the query it throws fn should be a function error as it expects third parameter to be success callback function

I get this error when i try

I tried using on success function but still got the same error

0 投票
0 回答
310 浏览

javascript - mongo / 僧侣 - 不解雇 promise.done?

我正在使用 mongo/monk 来尝试获得减少一些 CB 丑陋的承诺,但它似乎会产生更多不寻常的问题来调试(“现在你有两个问题”)。

基于: https ://gentlenode.com/journal/node-4-monk-cheatsheet/45

我有一个小例程来清除集合并插入一些数据,但是 on.complete 或 on.success 没有触发

还有其他原因内部on("success")没有触发吗?如果 spartan https://github.com/Automattic/monk#promises,文档看起来很清楚

0 投票
1 回答
49 浏览

node.js - 用 Q 迭代

我在 MongoDB 中有这个集合(为简洁起见,我省略了_ids):

我需要对每个我无法处理的文档进行一些处理db.update()。因此,简而言之,我需要做的是一次检索一个文档,在 Node 中处理它并将其保存回 Mongo。

我正在使用 Monk 库,并使用 Q 表示承诺。这是我所做的——为简洁起见,我没有包括处理/保存位:

我希望这段代码能打印出来:

但它实际上打印出来:

我究竟做错了什么?

0 投票
0 回答
220 浏览

node.js - MongoDB $elemMatch 投影被忽略

我正在使用 Node.js、Koa、MongoDB、Monk。

当我在查询中使用 $elemMatch 时,它工作正常,但在投影中它被忽略了。

我有这样的数据

而且我要:

具有“邮政编码”的文件:“63109”

并且学生数组应仅包含“studentId”为“2”的子文档(如果存在)。

即我想要这个:

但是我在“students”数组中获取了每个子文档。似乎 $elemMatch 投影被忽略了。

我正在使用的查询:

有没有办法做到这一点?

PS我正在使用co-monk。

0 投票
0 回答
595 浏览

node.js - 如何用僧侣而不是猫鼬来做passport.js?

我从和尚开始而不是猫鼬 - 我真的很乐意保持这种状态!

我的具体问题:如何使用僧侣转移或更好地“适应”以下功能 - 这存在于很多 node/mongoose/passport.js 教程中?

这是猫鼬的片段:


// 应用程序/模型/user.js

// 为我们的用户模型定义模式

// 生成哈希

// 检查密码是否有效

// 为用户创建模型并将其公开给我们的应用程序

好吧,我已经有一个和尚模式,但是如何继续呢?任何人都可以给我一个提示,让我有两个 bcrypt 功能和模型创建和与和尚回传的等价物吗?