📜  mongoose 查找和删除 - Javascript (1)

📅  最后修改于: 2023-12-03 14:44:23.216000             🧑  作者: Mango

Mongoose查找和删除

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中进行查找和删除操作非常简单,可以方便地使用查询选项和回调函数进行进一步操作。