📅  最后修改于: 2023-12-03 14:44:23.216000             🧑  作者: Mango
Mongoose是一个针对MongoDB的Object Data Modeling(ODM)库。在Mongoose中,我们可以轻松地定义模式和创建模型,以便连接到MongoDB数据库并进行各种操作。这包括查找和删除文档。
在Mongoose中,我们可以使用find()
方法对文档进行查找。此方法返回一个Mongoose查询对象,我们可以使用该对象来进一步筛选和操作查询结果。
以下是一个基本的示例,其中使用find()
方法查询所有名为John的用户:
User.find({ name: 'John' }, (err, users) => {
if (err) throw err;
console.log(users);
});
上面的代码将返回名为John的所有用户的数组。
我们还可以使用查询选项来对查询进行进一步筛选,例如使用limit()
方法限制查询结果数量,使用sort()
方法对结果进行排序,使用skip()
方法跳过一定数量的结果,等等。下面是一个使用查询选项的示例:
User
.find()
.limit(10)
.sort({ name: 'asc' })
.exec((err, users) => {
if (err) throw err;
console.log(users);
});
在上面的示例中,我们查询了所有用户,但是我们只返回前10个,并按名称按字母顺序排序。
在Mongoose中,我们可以使用findOneAndDelete()
方法删除单个文档,或使用deleteMany()
方法删除多个文档。这两种方法的返回值都是被删除的文档。
以下是findOneAndDelete()
方法的示例:
User.findOneAndDelete({ name: 'John' }, (err, user) => {
if (err) throw err;
console.log(user);
});
上面的代码将查找名为John的用户并删除该用户。被删除的用户将作为回调函数的参数返回。
以下是deleteMany()
方法的示例:
User.deleteMany({ age: { $gte: 40 } }, (err, result) => {
if (err) throw err;
console.log(result.deletedCount);
});
上面的代码将删除年龄大于或等于40岁的所有用户,并返回被删除的文档数量。
总体来说,在Mongoose中进行查找和删除操作非常简单,可以方便地使用查询选项和回调函数进行进一步操作。