【发布时间】:2017-06-27 03:54:25
【问题描述】:
我这样定义数据模型:
import mongoose from 'mongoose';
const schema = mongoose.Schema({
title: {type: String, required: true},
content: {type: String, required: true},
language: {type: String, required: true},
label: [{type: String, required: false}],
createTime: {type: Date, default: Date.now},
updateTime: {type: Date, default: Date.now}
});
const Snippet = mongoose.model('Snippet', schema, 'snippet');
export default Snippet;
我想要的是当我使用时:
Snippet.aggregate({...})
如果数据是:
[{
title: 'a',
content: 'b',
language: 'javascript'
},{
title: 'a',
content: 'b',
language: 'javascript',
label: ['new', 'old']
},
{
title: 'a',
content: 'b',
language: 'javascript',
label: ['old']
}]
那么我想要的结果应该是这样的:
{
languageCount : [
{
language : 'javascript',
count : 3
}],
labelCount : [
{
label : 'new',
count : 1
},
{
label : 'old',
count : 2
}]
}
我不知道如何完成我的“...”部分。
任何对此有任何想法或任何其他方式的人都可以解决它请告诉我,非常感谢!
【问题讨论】:
-
你的
mongod是什么版本? -
我的 mongod 版本是 3.2.1。如果你可以使用基于最新版本的某些功能,我可以接受。
标签: mongodb mongoose mongodb-query aggregation-framework