我如何在猫鼬中聚合和填充
How can I Aggregate and populate in mongoose
我在填充 "Main" 时遇到问题
collection,分组效果很好,但我真的不知道该怎么做
聚合后填充甚至 .find。我相信我正在这里做模特铸造:
Main.aggregate([
{$match : query},
{
$group:{
_id: queryGroupBy,
activated: {$sum: '$activated'},
componentTitle: {$first:'$componentTitle'},
titlePrefix: {$first:'$titlePrefix'},
operator_name: {$first:'$operator_name'}
}
},
{
$project:{
_id: '$_id',
summation: '$activated',
componentTitle: '$componentTitle',
titlePrefix: '$titlePrefix',
operator_name: '$operator_name'
}
}],
function(err,results) {
if (err) throw err;
result = results.map(function(doc) {
doc._id = doc._id,
doc.activated = doc.activated,
doc.componentTitle = doc.componentTitle,
doc.titlePrefix = doc.titlePrefix,
doc.operator_name = doc.operator_name,
doc.fssStatusFDD = "",
doc.dateUpdated = "",
delete doc._id;
delete doc.summation;
var _main = new Main();
_main = doc;
console.log('test3');
return _main
});
Main.populate( results, { "path": "operator_name" }, function(err,results) {
if (err) throw err;
console.log( JSON.stringify( results, undefined, 4 ) );
});
console.log('good');
return res.send(results);
});
欢迎和赞赏任何建议。
找到答案似乎可以解决问题。希望这有帮助
Main.aggregate([
{$match : query},
{
$group:{
_id: queryGroupBy,
activated: {$sum: '$activated'},
componentTitle: {$first:'$componentTitle'},
titlePrefix: {$first:'$titlePrefix'},
operator_name: {$first:'$operator_name'}
}
},
{
$project:{
_id: '$_id',
summation: '$activated',
componentTitle: '$componentTitle',
titlePrefix: '$titlePrefix',
operator_name: '$operator_name'
}
}],
function(err,results) {
Main.populate( results, { "path": "operator_name" }, function(err,results) {
if (err) throw err;
console.log( JSON.stringify( results, undefined, 4 ) );
console.log('good');
return res.send(results);
});
});
我在填充 "Main" 时遇到问题 collection,分组效果很好,但我真的不知道该怎么做 聚合后填充甚至 .find。我相信我正在这里做模特铸造:
Main.aggregate([
{$match : query},
{
$group:{
_id: queryGroupBy,
activated: {$sum: '$activated'},
componentTitle: {$first:'$componentTitle'},
titlePrefix: {$first:'$titlePrefix'},
operator_name: {$first:'$operator_name'}
}
},
{
$project:{
_id: '$_id',
summation: '$activated',
componentTitle: '$componentTitle',
titlePrefix: '$titlePrefix',
operator_name: '$operator_name'
}
}],
function(err,results) {
if (err) throw err;
result = results.map(function(doc) {
doc._id = doc._id,
doc.activated = doc.activated,
doc.componentTitle = doc.componentTitle,
doc.titlePrefix = doc.titlePrefix,
doc.operator_name = doc.operator_name,
doc.fssStatusFDD = "",
doc.dateUpdated = "",
delete doc._id;
delete doc.summation;
var _main = new Main();
_main = doc;
console.log('test3');
return _main
});
Main.populate( results, { "path": "operator_name" }, function(err,results) {
if (err) throw err;
console.log( JSON.stringify( results, undefined, 4 ) );
});
console.log('good');
return res.send(results);
});
欢迎和赞赏任何建议。
找到答案似乎可以解决问题。希望这有帮助
Main.aggregate([
{$match : query},
{
$group:{
_id: queryGroupBy,
activated: {$sum: '$activated'},
componentTitle: {$first:'$componentTitle'},
titlePrefix: {$first:'$titlePrefix'},
operator_name: {$first:'$operator_name'}
}
},
{
$project:{
_id: '$_id',
summation: '$activated',
componentTitle: '$componentTitle',
titlePrefix: '$titlePrefix',
operator_name: '$operator_name'
}
}],
function(err,results) {
Main.populate( results, { "path": "operator_name" }, function(err,results) {
if (err) throw err;
console.log( JSON.stringify( results, undefined, 4 ) );
console.log('good');
return res.send(results);
});
});