如何根据 node.js 中用户的输入创建 mongodb 查询?

2024-06-25

目前在我的应用程序中我存储了不同的论坛帖子。用户可以添加新消息并创建新帖子。 其他用户在显示内容时可以对其进行过滤,这样他们就不会看到他们之前阻止的特定用户上传的内容。

每个用户都表示为以下组合device_id and display_name.

当用户获取内容时,他们会执行以下操作post查询并包含之前被阻止的用户的数组:

"blockedUsers": (
{
    "device_id" = "XXX";
    "display_name" = XXX;
},
{
    "device_id" = "YYY";
    "display_name" = YYY;
}
)

目前可以使用某些已注册的显示名称或匿名添加内容。

现在我只支持过滤具有某些display_name的用户:

if(blockedUsers) {
    var excludedUsernames = [];

    for(var i in blockedUsers) {
         excludedUsernames.push(blockedUsers[i]['display_name']);
    }

    query.$and.push({ 'display_name': { $nin: excludedUsernames } });
}

这工作正常 - 当用户注册并有一些显示名称(不同于anonymous) - 我不关心他的 device_id,我关心的只是通过他的 display_name 阻止他。

但是,当一些匿名用户之前被阻止时:

"blockedUsers": (
{
    "device_id" = "XXX";
    "display_name" = "anonymous"; //represents anonymous user
},
{
    "device_id" = "YYY";
    "display_name" = "anonymous"; //represents anonymous user
}
)

我需要通过排除他的帖子device_id and the display_name == anonymous。在这种情况下,当有一些 device_id 但包含display_name != anonymous- 我不想阻止它。

我不知道如何更新我的查询以使其满足上面的要求,您能帮我吗?谢谢!


如果我理解得好的话:

  • 如果用户被禁止device_id,然后屏蔽他
  • 如果用户被禁止display_name,然后屏蔽他

在这种情况下,他是否真的并不重要anonymous or not.


let excludedUsernames, excludedDevices;

blockedUsers.forEach((e) => {
    excludedUsernames.puhs({ e["display_name"] });
    excludedDevices.push({ e["device_id"] });
});

query.$and.push({ 'display_name' : { $nin: excludedUsernames } });
query.$and.push({ 'device_id'    : { $nin: excludedDevices   } });

EDIT

query.$or.push({
    $and: [
        { 'device_id'    : { $nin: excludedDevices }},
        { 'display_name' : "anonymous" }
    ]
});
query.$or.push({ 'display_name' : { $nin: excludedUsernames } });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据 node.js 中用户的输入创建 mongodb 查询? 的相关文章

随机推荐

  • Google Sheet API 附加到特定工作表

    根据API https developers google com sheets api reference rest v4 spreadsheets values append看来我无法指定工作表附加数据的位置 它将所有内容附加到第一张表
  • 绑定空数据表时的DetailsView错误?

    我正在使用 net 4 5 我发现了这个奇怪的行为 Markup
  • 如何使用 Scipy 从 3D 体积中提取任意 2D 切片?

    我使用 Scipy 从 3D 数据 矢量 200x200x200 渲染平面 我可以通过 2 个向量或向量和角度来指定所需的平面 我想从这个 3D 体积中提取这样一个任意切片 我找到了如何在 Matlab 中做到这一点 http www ma
  • DBpedia SPARQL 过滤器并不适用于所有结果

    A FILTER NOT EXISTS与以下组合时允许某些结果通过OPTIONAL三倍 我的查询 SELECT DISTINCT WHERE en rdfs label N Djamena en BIND N Djamena AS name
  • 在 Azure 中的何处添加监控读取器角色

    我想在 azure 门户中设置一些警报 现在对 监控读者 和 监控贡献者 角色有点困惑 假设我有 2 个 Web 应用程序 属于 1 个资源组 并且它们都将日志写入 1 个应用程序洞察实例 现在我想向应用程序见解添加一条新规则 即当错误太多
  • 核心动画的鱼眼效果?

    我正在尝试实现类似于 ABC News iPad 应用程序的地球仪的效果 是不是可以通过改造CALayers来得到这个效果呢 或者这是使用 OpenGL 和片段 顶点着色器 CALayer 提供对变换矩阵的访问 是否有一些数学可以应用于此而
  • 运行 webpack 抛出“回调已被调用”错误

    我刚刚开始学习 webpack 来管理项目中的依赖项 我正在尝试使用它为我的打字稿和 JavaScript 文件构建捆绑包 对于打字稿文件 我正在使用ts loader处理它的插件 对于CSS 我使用的是mini css extract a
  • 通过 Phonegap 使用 SSL 和证书连接到 Web 服务器

    这就是关于基于 JS 构建的 Phonegap Android 和 iOS 应用程序的全部内容 我们有一个服务器 方法如下 授权 登录 通过 返回certificate p12文件 PKCS 12 服务器也有方法 需要使用该证书进行授权 R
  • dplyr 中 select() 的 contains() 和 matches() 之间的区别

    我决定花一些时间彻底学习dplyr 我刚刚遇到select 函数以及它附带的一些辅助函数 通过只是玩弄 我没能发现两者之间的任何区别contains and matches辅助功能 有人可以提供一个例子来说明如何将它们用于不同的目的吗 谢谢
  • 在 Python 3 中调用 super() 的 4 种方法中,使用哪一种?

    我想知道什么时候使用 Python 3 的什么风格super http docs python org py3k library functions html super Help on class super in module buil
  • 将 XSL 嵌入 XML 以在 Web 浏览器中显示:我做错了什么?

    所以我试图研究这个 但我几乎束手无策 我找到了一种将 XSL 嵌入 XML 的方法dpawson co uk http www dpawson co uk xsl sect2 onefile html 但我不知道我做错了什么 我在互联网上搜
  • 如何将 image_tag 与 bootstrap class: "img-responsive" 一起使用?第11章

    我问这个问题的原因是为了解决一个非常烦人的语法错误 我正在使用第 11 章 这样我就可以在我的新网站上使用图像构建一个博客部分 除了我尝试向此行添加 class img responsive 之外 一切都正常 我只是无法弄清楚添加类的正确语
  • Session.getActiveUser.getEmail() 空白?谷歌表格

    我想检查点击该特定按钮的用户 当我以我的帐户登录时单击它时 它运行正常 但如果其他人运行它 它就是空白的 如何获取登录用户的电子邮件 ID 这是我的代码 function check User var ui SpreadsheetApp g
  • Hotmail 混淆了编码的 URL 参数

    我们有一个系统 可以定期发送带有链接的电子邮件 其中许多包含 URL 编码参数 如下所示 href http www mydomain com login aspx returnurl http 3A 2F 2Fwww mydomain c
  • [R][传单]:点击超链接

    我想在世界地图上添加标记 当用户单击一个标记时 它会将用户引导到另一个网站 而不是弹出窗口 我是这个库的新手 实际上这是我为了解决这个问题而尝试的第一个库 带有超链接标记的交互式地图 供用户单击并转到另一个网站 所以我能做的就是 map l
  • 查找 numpy 数组中包含最大值的行或列

    如何在 2d numpy 数组中找到包含数组范围最大值的行或列 您可以使用np argmax随着np unravel index as in x np random random 5 5 print np unravel index np
  • 用户 10036 和当前进程都没有 android.permission.DEVICE_POWER。

    我需要通过应用程序上的按钮关闭设备电源 我向清单文件添加权限
  • Jquery 单选按钮检查

    我想检查是否选择了任何单选按钮 以及是否没有选择打印一些警报消息 html代码是
  • F# 中的底部/未定义值?

    有一个方便的不明确的 http www haskell org haskellwiki BottomHaskell 中的值可以用作代码中尚未定义的函数 路径的存根 F 中有类似的东西吗 具体来说 您可以这样定义这样的值 let undefi
  • 如何根据 node.js 中用户的输入创建 mongodb 查询?

    目前在我的应用程序中我存储了不同的论坛帖子 用户可以添加新消息并创建新帖子 其他用户在显示内容时可以对其进行过滤 这样他们就不会看到他们之前阻止的特定用户上传的内容 每个用户都表示为以下组合device id and display nam