Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用节点mongodb本机驱动程序删除文档?_Node.js_Mongodb - Fatal编程技术网

Node.js 如何使用节点mongodb本机驱动程序删除文档?

Node.js 如何使用节点mongodb本机驱动程序删除文档?,node.js,mongodb,Node.js,Mongodb,该操作返回说deleted:0 const res = await ctx.db.collection(this.col).removeOne({ _id: ctx.params.id }); 不知道我做错了什么。通过{u id:}获取请求似乎工作正常 ctx.params.id已定义,与数据库中的ObjectId相同 根据此文档,您可以执行collection.removeOne()(参见示例2) 尝试将ctx.params.id转换为,这是mongodb在内部存储标识符的方式 import

该操作返回说
deleted:0

const res = await ctx.db.collection(this.col).removeOne({ _id: ctx.params.id });
不知道我做错了什么。通过
{u id:}
获取请求似乎工作正常

ctx.params.id
已定义,与数据库中的ObjectId相同

根据此文档,您可以执行
collection.removeOne()
(参见示例2)


尝试将
ctx.params.id
转换为,这是mongodb在内部存储标识符的方式

import { ObjectId } from 'mongodb'

id = ObjectId(ctx.params.id)

当我没有在其他任何地方使用ID时,为什么我要这么做?@chovy我真的不确定,但你可以试试。你上面的代码对我来说很好,很有效!老兄,为什么用这种方法而不是其他方法?奇怪。@chovy我很想给你一个答案,但我真的不知道。我知道mongoose自己做这件事,但不确定mongodb为什么不做(特别是为什么它不只是在deleteOne中做)。总是这样做是好的做法吗?我似乎对
.find({{u id:ctx.params.id})没有任何问题
import { ObjectId } from 'mongodb'

id = ObjectId(ctx.params.id)