我如何才能只删除 mongodb 中的一个对象,而不是所有匹配过滤器查询的对象?
How I can remove only one object in mongodb, not all objects matching the filter query?
这是我用于删除名称为 'bob':
的对象的代码
app.delete('/user/:id', async (req, res) => {
const id = req.params.id;
const query = { name: "bob" }
const result = await userCollection.deleteOne(query);
res.send(result);
});
此代码删除名称为 'bob' 的所有对象,但我只想从匹配此查询的数据库中删除任何一个实例,而不是所有对象。有什么方法可以设置我要删除多少个与此查询匹配的实例?
您可以使用此代码
const ObjectId = require("mongodb").ObjectId;
app.delete('/user/:id', async (req, res) => {
const id = req.params.id;
const query = { _id: ObjectId(id) };
const result = await userCollection.deleteOne(query);
res.send(result);
});
这是我用于删除名称为 'bob':
的对象的代码app.delete('/user/:id', async (req, res) => {
const id = req.params.id;
const query = { name: "bob" }
const result = await userCollection.deleteOne(query);
res.send(result);
});
此代码删除名称为 'bob' 的所有对象,但我只想从匹配此查询的数据库中删除任何一个实例,而不是所有对象。有什么方法可以设置我要删除多少个与此查询匹配的实例?
您可以使用此代码
const ObjectId = require("mongodb").ObjectId;
app.delete('/user/:id', async (req, res) => {
const id = req.params.id;
const query = { _id: ObjectId(id) };
const result = await userCollection.deleteOne(query);
res.send(result);
});