转载: 点击查看原文

做项目遇到一个需求,需要根据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的更多相关文章

  1. java 实现mongoDB 增加,删除,修改,查看,多条件查询,聚合查询,分组查询(史上最全)

    首先idea创建一手springboot项目 引入如下依赖 <dependency> <groupId>org.mongodb</groupId> <arti ...

  2. .NET 云原生架构师训练营(模块二 基础巩固 MongoDB 更新和删除)--学习笔记

    2.5.4 MongoDB -- 更新和删除 整体更新 更新字段 字段操作 数组操作 删除 https://docs.mongodb.com/manual/reference/operator/upd ...

  3. MongoDB改动、删除文档的域属性实例

    MongoDB改动.删除文档的域属性实例 在站点的开发中,可能最初的设计不合理.或者后期业务的变更,会造成文档结构会有些无用的属性.须要去删除或改动.因为MongoDB 是无 Schema 的,不像关 ...

  4. python操作mongodb根据_id查询数据的实现方法

    python操作mongodb根据_id查询数据的实现方法   python操作mongodb根据_id查询数据的实现方法,实例分析了Python根据pymongo不同版本操作ObjectId的技巧, ...

  5. 学习MongoDB 二:MongoDB加入、删除、改动

    一.简单介绍 MongoDB是一个高性能.开源.无模式的文档型数据库,是当前NoSQL数据库产品中最热门的一种.数据被分组存储在数据集中,被称为一个集合(Collenction)和对于存储在Mongo ...

  6. 学习MongoDB 二:MongoDB添加、删除、修改

    一.简介 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSQL数据库产品中最热门的一种.数据被分组存储在数据集中,被称为一个集合(Collenction)和对于存储在MongoDB ...

  7. MongoDB-2:MongoDB添加、删除、修改

    一.简介 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSQL数据库产品中最热门的一种.数据被分组存储在数据集中,被称为一个集合(Collenction)和对于存储在MongoDB ...

  8. MongoDB创建\更新\删除文档操作

     一.插入\创建文档 --当插入一个不存在的文档时,会自己主动创建一个文档 [root@racdb ~]# mongo MongoDB shell version: 2.4.14 connecti ...

  9. MongoDB 建立与删除索引

    1.1 在独立服务器上面建立索引 在独立服务器上面创建索引,可以在空闲时间于后台建立索引. 在后台建立索引,可利用background:true参数运行 >db.foo.ensureIndex( ...

随机推荐

  1. JAVA锁和volatile的内存语义&volatile的使用场景

    JAVA锁的内存语义 当线程释放锁时,JMM(Java Memory Model)会把该线程对应的本地内存中的共享变量刷新到主内存中. 当线程获取锁时,JMM会将该线程对应的本地内存置为无效.从而使得 ...

  2. 关于VXLAN的认识-----基础知识

    一.什么是VXLAN 普通的VLAN数量只有4096个,无法满足大规模云计算IDC的需求,因为目前大部分IDC内部结构主要分为两种L2,L3. L2结构里面,所有的服务器都在一个大的局域网里面,TOR ...

  3. pythonのpygame安装

    本地环境: python 3.7.0 windows7 64bit pip pygame地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame 通 ...

  4. MySQL绿色版安装整套流程

    https://www.cnblogs.com/LiuChunfu/p/6426918.html

  5. Java中通过脚本引擎调用js函数

    import java.io.*; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.scri ...

  6. BurpSuite使用笔记

    参考:Burp Suite 实战指南 Proxy模块 options--> add 设置监听地址,端口 binding 如果是作为本地浏览器代理默认(127.0.0.1:8080)就可以了. 如 ...

  7. Linux 查看系统硬件信息[转]

    原文:http://www.cnblogs.com/ggjucheng/archive/2013/01/14/2859613.html linux查看系统的硬件信息,并不像windows那么直观,这里 ...

  8. 20165231 2017-2018-2 《Java程序设计》第4周学习总结

    教材学习内容总结 第五章 子类与父类: 所谓的子类,必须是一个类继承了另一个类,这个类才是子类:比如:public class A extend B这就是说A类继承了B类,那么A就是B的子类:B是A的 ...

  9. MongoDB 和 NoSQL简介

    MongoDB 是一个基于分布式文件存储的数据库( https://www.mongodb.com/ ).由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案.MongoDB ...

  10. HTTP协议04-返回状态码

    状态码职责是在客户端向服务器端发送请求时候,描述返回的请求结果.借助状态码,用户可以知道服务器是否正常处理了请求,还是出错了. 状态码的类别   类别 原因短语 1XX Informational(信 ...