如何更新 mongodb 中嵌套对象的字段? [复制]

2024-01-07

Salam(意思是你好):)

我在用着节点 mongodb-native https://github.com/mongodb/node-mongodb-native驱动程序和我需要更新存储在数组中的对象的特定字段。这是我的 mongodb 集合中的示例文档:

{
    "fields" : [ 
        {
            "en" : "birthDate",
            "status" : "enable",
            "index" : 10
        },{
            "en" : "email",
            "status" : "enable",
            "index" : 4
        },{
            "en" : "inviterCode",
            "status" : "enable",
            "index" : 2
        }
    ]
}

这是我的新数据:

var newData = [ 
    {
        "en" : "birthDate",
        "status" : "disable",
    },{
        "en" : "email",
        "status" : "disable",
    }
];

如你所见,如果en场比赛,status字段应该更新。我知道以下查询适用于单个更新,但是如何使用单个查询实现多个更新?

collection.update(
    {'fields.en': 'birthDate'}, 
    {$set:{'fields.$.status': 'disable'}}, 
    {w:1, multi: true}, 
    function(error, count){

    }
);

不幸的是,使用单一更新是不可能的。有一个公开票 https://jira.mongodb.org/browse/SERVER-1243MongoDB 为此。

现在,您需要以编程方式执行此操作(例如,循环遍历数组以查找相关索引)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更新 mongodb 中嵌套对象的字段? [复制] 的相关文章

  • 如何从 typescript 使用 npm 模块?

    我正在尝试打字稿 它在 hello world 阶段运行良好 我现在尝试使用 npm 模块 index ts import require lodash console log toUpper Hello world 这不起作用 tsc i
  • Mongodb简单前缀查询与正则表达式和排序很慢

    我被这个简单的前缀查询困住了 虽然蒙戈文档 http www mongodb org display DOCS Advanced Queries AdvancedQueries RegularExpressions声明您可以通过使用前缀正则
  • console.log 从控制台提取方法

    考虑到console未被覆盖并引用本机对象 console log方法 可能还有其他方法 是从console对象与 var log obj log console log instead of console log bind consol
  • node.js http.request 事件流 - 我的 END 事件去了哪里?

    我正在制定一个狡猾的计划 其中涉及使用 node js 作为另一个服务前面的代理服务器 简而言之 将传入请求分派到静态文件 如果存在 否则 将请求分派给另一个服务 我已经掌握了基础知识 但现在尝试使用 Sencha 来完成整个工作Conne
  • 如何在nodejs(tensorflow.js)中训练模型?

    我想做一个图像分类器 但我不会python Tensorflow js 使用我熟悉的 javascript 可以用它来训练模型吗 训练步骤是什么 坦白说 我不知道从哪里开始 我唯一想到的是如何加载 mobilenet 它显然是一组预先训练的
  • Gatsby 构建失败 - 错误“窗口”在服务器端渲染期间不可用

    我最近一直在尝试使用外部包构建我的 gatsby react 网站 该包的链接是 https github com transitive bullshit react article animation 由于我只能选择更改组件详细信息中的道
  • MongoDb聚合

    如何使用 mongoDb 聚合编写模拟查询 select count as ccount from a group by a someField order by ccount desc limit 1 使用 mongoDb 中的 grou
  • 节点socket.io,有什么可以防止洪水吗?

    我怎样才能阻止某人简单地做 while true client emit i am spammer true 当有人想要让我的节点服务器崩溃时 这肯定会成为一个问题 就像 tsrurzl 说的 你需要实施一个速率限制器 https en w
  • Nodejs 进程挂起,我该如何调试它或收集转储?

    我的nodejs进程在Linux上运行 现在挂起并且CPU为100 无论如何我可以调试它并找到原因吗 我需要收集转储吗 如何收集 谢谢 有一个 npm 模块叫做节点为何运行 https www npmjs com package why i
  • 如何检查Mongodb企业版是否正在使用

    如何查看是否使用的是mongodb企业版 有没有我可以查询的标志或属性 mongod version只返回版本 我最近在 MongoDB JIRA 上问了这个问题 回复如下 至少可以通过三种方法来确定您是否正在运行 Enterprise 我
  • 如何在 Android 上运行我的 Node.js 项目?

    我的 android 平板电脑上有一个可用的 php 服务器 所以我希望它也可以以某种方式运行 nodejs 源代码可以在github上找到 也可以在linux上构建 但我不太明白如何构建它 提前致谢 网站上缺少构建说明 下载它 wget
  • 客户端 websocket 限制消息长度

    我正在使用 node js 开发一个 websockter 服务器 并且我发现了 Chrome 中的一些怪癖 Chrome OS X 10 7 64 位 上的最大字符串长度为 17740 而 Firefox 似乎可以毫无问题地处理非常大的字
  • nodeJS 防止 res.download 超时

    我对我的 nodeJS 服务器进行了 POST 调用 该服务器在 mongo 数据库上搜索一些数据并返回包含所请求数据的 CSV 文件 问题是数据搜索和处理超过了nodeJS默认的2分钟超时 在不同的场景中 y 使用 res writeHe
  • 错误:无法检测网络(事件=“noNetwork”,代码=NETWORK_ERROR,版本=providers/5.6.8)

    我想连接到ganache我得到一个error我不知道如何解决它 这是我的deploy js代码 它是脚本node js const ethers require ethers const solc require solc const fs
  • 在 sinon.js 中存根和/或模拟类?

    我已经为我的应用程序创建了一个数据库包装器 如下所示 为了测试它 我显然想替换实际的数据库 我可以创建一个新类来模拟query方法并捕获那里的所有输入 但是使用sinon js看起来更合适 但是我该如何使用它呢 Is the mock or
  • Spring mongodb 指南针缺少创建的数据/集合

    我使用 spring 将数据保存到数据库 RepositoryRestResource collectionResourceRel operators path operators public interface OperatorsRep
  • 我可以通过mongo shell重启mongodb服务器吗?

    我可以通过 mongo CLI 客户端重新启动 MongoDB 服务器吗 您无法从客户端停止和启动 重新启动 它 正如 i kimiko 已经提到的 你可以在客户端上关闭它db shutdownServer 通过 mongo shell数据
  • 使用 PassportJS 时将用户序列化/反序列化到会话中的目的是什么?

    使用 PassportJS 时将用户序列化 反序列化到会话中的目的是什么 我以前用过JSP 似乎对这些东西没有概念 它控制如何将用户实例保存到会话存储中 例如连接 redis https github com visionmedia con
  • 根据路由动态加载 Node.js 模块

    我正在使用 Express 在 Node js 中做一个项目 这是我的目录结构 root start js server js lib api user getDetails js user register js The lib api
  • node-cron 每 3 小时运行一次作业

    我试图每 3 小时运行一次 node cron 作业 但我不确定我做得是否正确 现在我正在使用 8 它是否正确 您应该将秒和分钟值清零 并使用 3 的步长 其 cron 表达式是 0 0 3 其计算结果为 每 3 小时 0 秒 0 分钟 你

随机推荐