如何在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

SpringCloud2025+SpringBoot3.5.0动态路由503问题排查与负载均衡依赖解析

本文详细排查了SpringCloud 2025与SpringBoot 3.5.0环境下,Spring Cloud Gateway动态路由返回503错误的根本原因。核心问题在于新版网关未默认集成负载均衡器,导致无法解析lb://服务名。通过对比静态路由与动态路由,定位到需显式引入spring-cloud-starter-loadbalancer依赖,并提供了完整的解决方案与最佳实践配置。

s3t4u的博客 503

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

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

weixin_34319111的博客 537

TL494充电器原理与维修 (转)

TL494充电器原理与维修 电动自行车充电器多采用开关 电源,型号虽多,但电路结构大同小异,主要区别在于所选的脉宽调制(PWM)芯片不同如(UC3845、UC3842、SG3524、TL494)。现以佳腾牌 充电器为例,介绍其原理和故障检修方法。 一、电路原理 根据实物测绘的佳腾牌充电器电路原理如图1所示。整机可分为PWM产生和推动电路、功 率开关变换电路、...

weixin_30500663的博客 1814

SpringBoot 中 @RequestMapping 及衍生注解的全面解析与实践

本文全面解析Spring Boot中@RequestMapping及其衍生注解的使用,涵盖核心功能、HTTP方法特定注解(@GetMapping/@PostMapping等)、属性详解(路径/参数/头信息等)以及路径变量处理。文章详细介绍了注解的组合使用、继承特性、版本控制策略等高级应用,并针对405/404等常见错误提供解决方案。通过学习这些注解的规范用法,开发者能够构建符合RESTful风格的API接口,提升代码可读性和可维护性。建议优先使用HTTP方法特定注解,合理规划URL结构,并注意避免路径冲突。

Java&AI小吕布的博客 2037

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

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

weixin_43930256的博客 1054

保姆级教程:用Python+OpenCV搞定Orbbec Gemini深度与彩色流对齐(附完整代码)

本文提供了一份详细的Orbbec Gemini深度与彩色流对齐教程,涵盖从环境配置到完整代码实现的每一步。通过解析深度流对齐原理,对比不同对齐模式,并提供工业级应用中的问题排查方法,帮助开发者快速掌握Orbbec Gemini相机的使用技巧。文章还包含进阶应用如点云生成与三维重建的实战代码。

weixin_29090917的博客 470

数据库mongodb增删改查

mongodb 增 删 改 查

fkkkkkf的博客 1964

数学概念 | 旋转矩阵、欧拉角、四元数

旋转矩阵、欧拉角、四元数概念及相关运算;

NapoleonCoder的博客 772

瑞萨单片机-硬件I2C从设备

瑞萨单片机上实现I2C从机,根据主机发来的数据,从机返回或者保存数据2、R5F1115AxFL最多支持3个从设备地址(即可以作为三个从设备)3、从接收模式:直接将数据保存到RAM中,接收完再处理4、从发送模式:按照I2C读取传感器数据经验,主机读取从设备时,从设备需要立刻返回数据的,但是程序要如何实现一收到指令就返回特定的数据?(时钟拉伸)这里先跳过,我们先实现返回固定的数据。

qq_27893147的博客 3220

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

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

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

机理模型与数据模型融合的方式

风电场的发电量受到多种因素的影响,包括但不限于风速、温度、空气密度等。尽管这些环境变量可以直接测量并用作模型输入,但它们与发电量之间的关系往往是复杂的非线性关系。通过引入基于物理定律计算出的理论发电量作为额外特征,可以为数据驱动模型提供更丰富的信息,从而提高预测精度。在这个案例中,我们将使用贝茨理论(Betz Limit)来计算风电场的理论发电量,并将其作为一个新的特征添加到数据集中。然后,我们使用增强后的数据集训练一个简单的神经网络模型来进行发电量预测。

金石软件 4805

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

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

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

一台NAS两个系统:飞牛nas上完美运行群晖DSM?(飞牛nas+群晖nas套娃安装实操)

想在飞牛NAS上体验群晖DSM系统?💡 本文详细记录了飞牛nas上部署群晖的完整过程,从镜像转换到系统安装,每一步都有详细说明 🖥️,让你在不增加硬件成本的情况下,轻松实现一套硬件、多种系统的灵活部署 ✅

XiaoqiangClub的博客 2368

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

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

一起学习 1223

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

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

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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【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、付费专栏及课程。

余额充值