gpt4 book ai didi

node.js - 如何在 Mongoose 中使用聚合

转载 作者:IT老高 更新时间:2023-10-28 13:15:43 25 4
gpt4 key购买 nike

如何在 mongoose 中定义以下 MongoDB 聚合查询:

db.contacts.aggregate([{$group: { "_id": { code: "$Code", name: "$Name" } } }])

查询的目的是提取不同代码和名称的列表。

我目前的型号代码是:

'use strict';

var mongoose = require('mongoose'),
Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;

var fields = {
Code: { type: String },
Name: { type: String }
};

var contactSchema = new Schema(fields);

module.exports = mongoose.model('Contacts', contactSchema);

路由器如下所示:

api.contacts = function (req, res) {
Contacts.find({ AgencyTranslation: /^BROADCASTING/ }, function(err, contacts) {
if (err) {
res.json(500, err);
} else {
res.json({contacts: contacts});
}
});

我尝试了各种变体,还查看了示例代码:mongoose API docs ,但我似乎无法让它工作。

(注意:上述查询在 MongoDB 控制台中确实有效。)

最佳答案

试试这个

Contacts.aggregate({$group: { "_id": { code: "$Code", name: "$Name" } } }, function(err, contacts) {
...
});

或者,如果您需要此 AgencyTranslation:/^BROADCASTING/ 条件,请使用 $match

Contacts.aggregate([
{ $match : { AgencyTranslation: /^BROADCASTING/ } },
{ $group: { "_id": { code: "$Code", name: "$Name" } } }
], function(err, contacts) {
// ...
});

关于node.js - 如何在 Mongoose 中使用聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27712022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com