📅  最后修改于: 2023-12-03 15:19:39.140000             🧑  作者: Mango
在 Mongoose 中,我们可以使用 distinct()
方法来查询一组文档中唯一的值。本文将对该方法进行介绍。
query.distinct(field, callback)
field
:要查询的字段名。callback(error, results)
:一个回调函数,用于处理查询结果。查询结果是一个唯一值的数组。假设我们有一个 books
集合,其中每个文档都有一个 author
字段,我们想获取该集合中所有唯一的作者名。
var Book = require('./book');
Book.distinct('author', function(error, authors) {
if (error) {
console.log(error);
} else {
console.log(authors); // 输出作者名的数组
}
});
在上面的例子中,我们调用了 Book
对象的 distinct()
方法,并传入了要查询的 author
字段。当查询成功后,我们会得到一个唯一值的数组,该数组包含了所有不同的作者名。
我们还可以使用其他查询条件来限制 distinct()
方法的结果。例如,假设我们想获取作者名以 J.
开头的图书:
Book.distinct('author', { author: /^J\./ }, function(error, authors) {
if (error) {
console.log(error);
} else {
console.log(authors); // 输出以 J. 开头的作者名数组
}
});
在上面的例子中,我们在调用 distinct()
方法时传入了一个查询对象。这个查询对象设置了 author
字段必须以 J.
开头,因此最终返回的结果只包含以 J.
开头的作者名。
distinct()
方法可以帮助我们获取一组文档中唯一的值。我们可以使用各种查询条件来限制结果。如果您想学习更多 Mongoose 的使用方法,可以查看 Mongoose 的官方文档。