【发布时间】:2016-10-05 06:03:36
【问题描述】:
我在 nodejs 中使用 Mongoose。所以这里是一个示例 Publisher 模型:
name: String,
books: [{
title: String,
author: {
name: String,
age: Number
}
}]
我想获取与正则表达式匹配的所有不同作者姓名。我是 noSql 的新手,所以也许我只是在做一些愚蠢的事情。我想我想做这样的事情:
Publisher.aggregate([
{$unwind: '$books'},
{$match: {
'books.author.name': new RegExp(req.params.regex)
}},
{$group: {
_id: '$books.author.name'
}},
{$group: {
distinctValues: {$addToSet: '$_id'}
}}
], function(err, result) {
if(err) throw err;
res.json(result);
})
这似乎应该根据:https://dba.stackexchange.com/questions/59661/mongodb-distinct-in-an-array
非常感谢你们为我提供帮助的任何和所有输入。
【问题讨论】:
标签: node.js mongoose aggregate distinct