Arhn - архитектура программирования

Документы совокупного массива MongoDB

У меня есть коллекция MongoDB, содержащая такие элементы:

{
    "name": "test",
    "instances": [
        {
            "year": 2015
        },
        {
            "year": 2016
        },
    ]
}

Как я могу получить минимальное и максимальное значение для year в документе с именем test? Например. Я хочу объединить все документы внутри этого массива, но не могу найти для этого синтаксис. Заранее спасибо!


  • эмм, да, наверное, ты прав. Я обновлю это! 02.02.2019

Ответы:


1

Как $min, так и $max принимает массив в качестве параметра, и в вашем случае путь instances.year возвращает массив, поэтому ваш запрос может выглядеть следующим образом:

db.col.aggregate([
    {
        $match: { name: "test" }
    },
    {
        $project: {
            minYear: { $min: "$instances.year" },
            maxYear: { $max: "$instances.year" }
        }
    }
])
02.02.2019

2

Вы можете использовать агрегацию ниже

db.collection.aggregate([
  { "$project": {
    "maxYear": {
      "$arrayElemAt": [
        "$instances",
        {
          "$indexOfArray": [
            "$instances.year",
            { "$max": "$instances.year" }
          ]
        }
      ]
    },
    "minYear": {
      "$arrayElemAt": [
        "$instances",
        {
          "$indexOfArray": [
            "$instances.year",
            { "$min": "$instances.year" }
          ]
        }
      ]
    }
  }}
])
02.02.2019
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..