Агрегация мангуста не дает таких же результатов, как у другого движка? Есть ли разница в синтаксисе? - PullRequest
1 голос
/ 12 апреля 2019

Игровая площадка с образцом данных: https://mongoplayground.net/p/OJKVFHLamig

Тем не менее, когда я запускаю mongoose в Node, точно такая же коллекция и агрегация вместо этого возвращает общее количество документов, а все остальное равно нулю:

[ { _id: null, myCount: 130111, site: null } ]

Я рассмотрел все другие переменные, каждую запятую в моем производственном коде, и больше ничего не объясняет это поведение.

Не подходит ли Mongoose для использования в монгоСтруктура агрегации или я что-то упустил из-за синтаксиса?

Схема:

import mongoose from 'mongoose';
import { SiteModel } from './site.schema';

const JobModel = new mongoose.Schema({
  _id: String,
(other properties that are strings)
  title: String,
  site: { SiteModel },
});

export default mongoose.model('jobs', JobModel);


// SITE MODEL: 

export const SiteModel = new mongoose.Schema({
  _id: String;
  title: String;
  city: String;
  UNID: String;

})

Модели неполные, так как я использую их только для чтения, база данных используется другим приложениемв прямом эфире, и я просто создаю некоторые отчеты / ищу некоторые данные на нем.

Я, однако, извлекаю все данные, которые мне нужны, и до сих пор это работало без сбоев.

РЕДАКТИРОВАТЬ 3: ЗАПИСЬ ВХОДА:

{ aggregate: "sites", pipeline: 
[ { $group: { _id: "$site.UNID", myCount: { $sum: 1 }, 
score: { $first: "$score" } } }, 
{ $limit: 20 }, 
{ $project: { site: "$_id", myCount: 1 } } ] 
...