如何在node中连接mongodb并通过_id修改对应数据

Node.js 连接 MongoDB MongoDB是一种文档导向数据库管理系统,由C++撰写而成。本章节我们将为大家介绍如何使用 Node.js 来连接 MongoDB,并对数据库进行操作。。 阅读详情

之前已经试过node连接数据库:koa中如何获取到mongodb的数据并展示在页面上

然后现在想做更新,然后按着http://www.runoob.com/nodejs/nodejs-mongodb.html 中的例子来做,如果全部条件都更新,则理论来说代码如下:

(错误示范)

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
 
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("runoob");
    var whereStr = {"_id":'XXXXXXXXXX'};  // 查询条件
    var updateStr = {$set: { "url" : "https://www.runoob.com" }};
    dbo.collection("site").updateOne(whereStr, updateStr, function(err, res) {
        if (err) throw err;
        console.log("文档更新成功");
        db.close();
    });
});

然发现查询不出任何结果,后来通过断点发现这里的_id我传的是字符串。

(正确示范)

var MongoClient = require('mongodb').MongoClient;
var ObjectId = require('mongodb').ObjectId ;
var url = "mongodb://localhost:27017/";
 
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("runoob");
    var whereStr = {_id:ObjectId(XXXXXXXX)};  // 查询条件
    var updateStr = {$set: { "url" : "https://www.runoob.com" }};
    dbo.collection("site").updateOne(whereStr, updateStr, function(err, res) {
        if (err) throw err;
        console.log("文档更新成功");
        db.close();
    });
});

因为_id是自动生成的,然后键值大约是这样:ObjectId("5bc6f3f016e4e13bc8c0f1d5"),页面获取的结果却是5bc6f3f016e4e13bc8c0f1d5,要想修改,需要要加上ObjectId()

 


这里普及下ObjectId知识:

MongoDB中我们经常会接触到一个自动生成的字段:”_id”,类型为ObjectId。

之前我们使用MySQL等关系型数据库时,主键都是设置成自增的。但在分布式环境下,这种方法就不可行了,会产生冲突。为此,MongoDB采用了一个称之为ObjectId的类型来做主键。ObjectId是一个12字节的 BSON 类型字符串。按照字节顺序,一次代表:

4字节:UNIX时间戳
3字节:表示运行MongoDB的机器
2字节:表示生成此_id的进程
3字节:由一个随机数开始的计数器生成的值

参考内容:MongoDB ObjectId详解及使用

前端必知必会-Node.js连接MongoDB查询数据 本文介绍了的使用,如有问题欢迎私信和评论。 阅读详情

相关推荐

前端必知必会-Node.js连接MongoDB 插入数据

本文介绍了Node.js连接MongoDB 插入数据,如有问题欢迎私信和评论。

qq_24018193的博客 855

nodejs之mongoose的主键变更

主键(ObjectId),属性名为_id,每个Schema都会默认配置这个属性,可通过下述方式改变此属性: var mongoose = require('mongoose'); var ObjectId = mongoose.Schema.Types.ObjectId; var StudentSchema = new Schema({}); //默认会有_id:Ob

suns的专栏 4294

实战:如何用MIPI CSI-2高效传输RAW10图像数据(附带宽优化技巧)

本文深入探讨了MIPI CSI-2协议在RAW10图像数据传输中的高效应用,详细解析了4像素5字节打包机制及其带宽优化技巧。通过动态Lane分配、位深度自适应压缩和虚拟通道交错传输等实战方法,显著提升传输效率,适用于IoT摄像头开发等低功耗场景。

css33的专栏 731

mongodb之利用findAndModify()和nodejs实现自定义自增id

mongodb有自己的ObjectId,为什么我们还要用自己的id呢?因为自定义的id可以实现自己的业务需求,比如我有一条记录,我需要更新它的一个字段,而且更新之后的数据要排在最前面。但是这个时候objectId是不变的,即使是使用毫秒级的时间戳,也可能同时插入多条数据,让你不知道更新的先后顺序。这个时候,你就需要自定义自增长的id. 项目使用的是nodejs,nodejs的io操作基本是异步的...

weixin_34319111的博客 537

企业AI Agent审计与合规:从日志留存到网络联动的完整落地指南

审计日志是企业安全与合规体系的基石,尤其在AI Agent大规模接入业务后,如何完整记录其行为链成为新的挑战。从日志留存180天到PCI DSS合规要求,审计体系需要覆盖会话、推理、工具调用、数据访问等关键环节,并结合不可篡改的存储设计,确保证据链可信。同时,借鉴上网行为管理设备对应用行为控制审计的思路,以及Kismet被动监测网络流量的方法论,将网络侧审计与应用侧日志交叉验证,能有效发现越权和异常行为。本文从日志采集、全链路追踪、基线预警到多租户隔离,系统梳理了AI Agent审计与合规落地的关键路径,帮

weixin_32234493的博客 264

Edge浏览器IE模式全攻略:从企业应用到老旧网站兼容(含常见问题解答)

本文详细解析了微软Edge浏览器的IE模式,这是解决企业遗留系统与老旧网站兼容性问题的关键技术。文章从核心原理出发,提供了从个人用户临时启用到企业级组策略部署的完整配置指南,并深入探讨了文档模式调优、ActiveX控件处理等高级技巧,最后汇总了常见问题排查与安全实践,帮助用户高效平衡兼容性与现代化浏览体验。

weixin_29227425的博客 609

node.js对mongodb数据的增删改查代码操作

node.js对mongodb数据的增删改查代码操作

weixin_43930256的博客 1054

eNSP-抓包解析TCP三次握手和四次挥手的过程

一、环境搭建 1.设备连接 2.服务器配置 3.客服端配置 二、抓包测试 1.打开抓包软件 2.客户端获取数据 三、抓包结果

小橙子的博客 3350

数据库mongodb增删改查

mongodb 增 删 改 查

fkkkkkf的博客 1964

2025华为od面试手撕代码【求字符串表达式结果】

2025华为od面试手撕代码【求字符串表达式结果】

MISAYAONE的博客 1351

Qt Android MySql 数据库驱动编译(详细图解步骤)

第一步.先介绍下环境搭建: Qt 版本 5.12.11 下载链接 https://download.qt.io/archive/qt/5.12/5.12.11/qt-opensource-linux-x64-5.12.11.run Ubuntu 18.04.6 LTS 下载链接 JDK版本 1.8.0_191 下载链接https://www.oracle.com/java/technologies/downloads/ Android Studio版本 ...

h a 6 6 6 c k 为 你解决复杂难题! 3380

MongoDB中自动增长ID详解:实现、应用及优化

创建计数器集合创建一个专门的集合来存储序列计数器。定义获取下一个序列值的函数使用原子操作来获取并增加序列值。插入新文档并使用自定义ID在插入新文档时,调用该函数以生成新的ID。})在MongoDB中,ObjectId提供了一种简单且有效的唯一标识符生成方式,但在某些情况下,自定义的自动增长ID可能更适合。通过创建计数器集合和使用操作,可以实现自定义的自动增长ID。需要注意的是,在实现自定义自动增长ID时,必须处理好并发和性能问题,以确保ID的唯一性和生成效率。

欢迎来到技术蜜糖罐的IT角落! 3449

YOLO26涨点改进 | Conv篇/小目标改进 | AAAI 2025 FBRT-YOLO 两个轻量级FCM和MKP模块, 助力无人机航拍任务VisDrone、UAVDT和AI-TOD高效涨点

本文提出FBRT-YOLO26模型,通过引入两个轻量级模块FCM和MKP优化航拍图像检测性能。FCM模块通过特征互补映射解决小目标信息丢失问题,MKP模块利用多尺度卷积核增强目标感知能力。在VisDrone等数据集上的实验表明,该方法在精度和速度上均优于现有实时检测器。文章详细介绍了模块结构、核心代码实现及YAML配置文件修改方法,为航拍图像中的小目标检测提供了高效解决方案。该模型实现了检测精度与效率的良好平衡,具有实际应用价值。

Ai缝合怪、助力小伙伴高效发论文 369

Node.js详解(四):连接MongoDB

MongoDB 对许多平台都提供驱动可以访问数据库,如C#、Java、Node.js等。下面一步一步带着大家在Nodejs中连接MongoDB。

Java+GO+JS全栈工程师-鹤冲天的博客:编程辅导~商务合作~技术交流 3604

【GameFramework框架内置模块】9、有限状态机(FSM)

这篇文章分享FSM有限状态机,了解过StarForce源码的同学相比都比较了解,GameFramework框架给我们抽象了一个Procedure流程的概念。这个Procedure流程可以方便的处理我们游戏从启动到游戏的各个流程阶段的处理逻辑,实现的核心就是FSM状态机,内部的Procedure流程就是不同的FsmState状态。接下来,就是FSM有限状态机的教程了。有限状态机(Finite-state machine,FSM)

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 2532

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

在Node.js中MongoDB的连接查询操作

本文主要介绍在Node.js中MongoDB的连接查询操作。

一起学习 1223

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MongoDB - 用Node.js连接MongoDB:从安装驱动到CRUD实战

摘要:本文详细介绍如何使用Node.js连接MongoDB数据库,从环境配置到完整的CRUD操作实战。内容包括本地MongoDB安装、Node.js项目初始化、官方驱动安装与连接池管理,并通过用户管理系统案例演示增删改查功能(含错误处理)。文章强调最佳实践,如单例模式连接、环境变量管理敏感信息,并提供Java(Spring Data MongoDB)的等效代码示例以便对比学习。适合全栈开发者系统学习Node.js与MongoDB的集成开发。 关键词:Node.js, MongoDB, CRUD, 数据库连接

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【Node系列】连接数据库

Node 连接 MongoDB数据库、MySql数据库

日常笔记/总结/系列知识梳理 2025

其他内容:连接 MongoDB 和 Node JS

MongoDB 是 nodejs 的 NoSQL 数据库。我们将使用 nodejs 的 MongoDB 驱动程序来管理 MongoDB 数据库。MongoDB使用二进制JSON来存储数据。我们还将使用mongoose 工具将 MongoDB 与 Node js 连接并管理数据库(即创建、读取、更新和删除文档)。与传统数据库一样,MongoDB易于使用并节省时间。考虑一下,我们在关系数据库中定义了一个表模式,如下所示。我们不能将新数据插入到包含新字段 phoneNumber 的表中。

新华编程特战队 1245

第24节 Node.js 连接 MongoDB

第24节 Node.js 连接 MongoDB

2301_78772942的博客 1166

使用node.js来连接mongodb数据库

使用node.js来连接mongodb数据库 一:mongodb简介 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 二:准备工作 1、安装node.js,官网地址:https://nodejs.org

丢失的Litte_志伟的博客 888

MongoDB - 连接

在本教程我们将讨论 MongoDB 的不同连接方式。

qq_25502783的博客 1571

第31章 Node.js 连接 MongoDB教程

MongoDB是一种文档导向database管理系统,由C++撰写而成。本章节咱们将为大家介绍如何使用 Node.js 来连接 MongoDB,并对database进行操作。如果仁兄还没有 MongoDB 的基本知识,可以参考咱们的教程:MongoDB 教程。

1085

MongoDB Node 驱动使用指南

使用原生的mongodbNode驱动连接MongoDB数据库。

魏大大 1358
上一篇: 如何给vue的href添加拼接参数
下一篇: 【微信小程序】app.json配置
gz-郭小敏
博客等级 码龄9年 39粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值