mongoDB通过_id删除doc
转载: 点击查看原文
做项目遇到一个需求,需要根据mongodb数据记录里面的_id字段删除相应的docs,实际使用时发现直接如下使用
db.collection('infochanges').remove({"_id":idvalue}).then(function(){})
会报错,这里需要将idvalue转换成mongodb默认的_id字段的objectid类型
于是,引入模块(mongoDB3.6)
var ObjectId = require('mongodb').ObjectID;//Work
其他的mongoDB版本可尝试
var ObjectId = require('mongodb').ObjectId;//Work
引用完成之后
db.collection('infochanges').remove({"_id":{"_id":ObjectId(idvalue)}).then(function(){})
此时,你会发现并不能通过上述操作成功删除数据,而是报错:
TypeError:Cannot convert undefined or null to object
重点:请使用findAndRemove
db.collection('infochanges').findAndRemove({"_id":ObjectId(index)}).then(function(){})
通过_id删除docs要用findAndRemove,remove不起作用(3.6版本)
上面给的写法,也可以省略 .then()。 直接通过传参的方式。 都是回调函数,等待异步执行完才执行。
例:
db.collection('infochanges').findAndRemove({"_id":ObjectId(index)}), function(){})
【注】 findAndRemove 现在也被弃用了,被更换为findOneAndDelete
希望能给各位遇到同样问题的道友一些帮助,也请各位大神多多指点,轻喷。
mongoDB通过_id删除doc的更多相关文章
- java 实现mongoDB 增加,删除,修改,查看,多条件查询,聚合查询,分组查询(史上最全)
首先idea创建一手springboot项目 引入如下依赖 <dependency> <groupId>org.mongodb</groupId> <arti ...
- .NET 云原生架构师训练营(模块二 基础巩固 MongoDB 更新和删除)--学习笔记
2.5.4 MongoDB -- 更新和删除 整体更新 更新字段 字段操作 数组操作 删除 https://docs.mongodb.com/manual/reference/operator/upd ...
- MongoDB改动、删除文档的域属性实例
MongoDB改动.删除文档的域属性实例 在站点的开发中,可能最初的设计不合理.或者后期业务的变更,会造成文档结构会有些无用的属性.须要去删除或改动.因为MongoDB 是无 Schema 的,不像关 ...
- python操作mongodb根据_id查询数据的实现方法
python操作mongodb根据_id查询数据的实现方法 python操作mongodb根据_id查询数据的实现方法,实例分析了Python根据pymongo不同版本操作ObjectId的技巧, ...
- 学习MongoDB 二:MongoDB加入、删除、改动
一.简单介绍 MongoDB是一个高性能.开源.无模式的文档型数据库,是当前NoSQL数据库产品中最热门的一种.数据被分组存储在数据集中,被称为一个集合(Collenction)和对于存储在Mongo ...
- 学习MongoDB 二:MongoDB添加、删除、修改
一.简介 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSQL数据库产品中最热门的一种.数据被分组存储在数据集中,被称为一个集合(Collenction)和对于存储在MongoDB ...
- MongoDB-2:MongoDB添加、删除、修改
一.简介 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSQL数据库产品中最热门的一种.数据被分组存储在数据集中,被称为一个集合(Collenction)和对于存储在MongoDB ...
- MongoDB创建\更新\删除文档操作
一.插入\创建文档 --当插入一个不存在的文档时,会自己主动创建一个文档 [root@racdb ~]# mongo MongoDB shell version: 2.4.14 connecti ...
- MongoDB 建立与删除索引
1.1 在独立服务器上面建立索引 在独立服务器上面创建索引,可以在空闲时间于后台建立索引. 在后台建立索引,可利用background:true参数运行 >db.foo.ensureIndex( ...
随机推荐
- CentOS7下安装JDK详细过程
Linux上一般会安装Open JDK,关于OpenJDK和JDK的区别:http://www.cnblogs.com/sxdcgaq8080/p/7487369.html 下面开始安装步骤: --- ...
- python,os方法的简单介绍
''' 这一个章节是学习os及os.path的用法 ''' #学习os首先需要引入os文件,imoprt os import os #getcwd()的用法,它是返回当前的工作目录,说白了就是你的程序 ...
- python 实现神经网络算法
注: Scratch是一款由麻省理工学院(MIT) 设计开发的一款面向少年的简易编程工具.这里写链接内容 本文翻译自“IMPLEMENTING A NEURAL NETWORK FRO ...
- 图像超分辨-DBPN
本文译自2018CVPR DeepBack-Projection Networks For Super-Resolution 代码: github 特点:不同于feedback net,引入back ...
- NMON使用以及nmon_analyse生成分析报表
在我们监控我们的操作系统的时候如果可以把各个硬件的监控信息生成形象化的分析报表图对于我们来说是件太好的事情了,而通过ibm的nom和nmon_analyser两者的结合完全可以实现我们的要求.首先对n ...
- iptables防火墙端口操作
1.将开放的端口写入iptables中,在终端中输入命令: /sbin/iptables -I INPUT -p tcp --dport -j ACCEPT 2.保存上一步的修改内容,输入命令: /e ...
- druid安装
只要下载duridjar包,然后在web.xml配置拦截器(此处不配置监控无法显示web情况,只能看到sql情况)和servlet, 然后在spring配置文件中修改DataSource即可.
- java乱码问题解决
1.通过统一的过滤器进行了页面过滤(问题排除) 2.通过debug功能发现页面传到servelet和DAO中文都是OK的,可以说明在web程序端没有问题 问题就可能出现在数据库上面 首先查看数据库编码 ...
- Linq与Lambda常用查询语法
1.查询全部 2.按条件查询全部 3.去除重复 4.连接查询 between and 5.排序 6.分组
- HashMap遍历的两种方式,推荐使用entrySet()
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { ...