Nano Hash - криптовалюты, майнинг, программирование

MongoDB $group не поддерживает выражения в стиле включения

Я получил "errmsg": "$group не поддерживает выражения в стиле включения" со следующим запросом в mongoDB.

db.lineitems.aggregate(
    { $match : { "shipdate" : { $lte: 19980801 }} },
    { $group : {
        _id : { "returnflag" :1, "linestatus" : 1},
        sum_qty : { $sum : "$quantity"},
        sum_base_price : { $sum : "$extendedprice"},
        sum_disc_price : { $sum : { $multiply : [ "$extendedprice",
        { $subtract : [1, "$discount"]}] }},
        sum_charge : { $sum : {$multiply : [ "$extendedprice",
        { $subtract : [1, "$discount"]}, {$add : [1, "$tax"]}] }},
        avg_qty : { $avg : "$quantity"},
        avg_price : { $avg : "$extendedprice"},
        avg_disc : { $avg : "$discount"},
        count_order : { $sum : 1}
        } },
    { $sort : {"_id.returnflag" : 1, "_id.linestatus" : 1}}
);

Есть образец документа:

{
"linenumber": 1,
"quantity": 41,
"extendedprice": 45682.2,
"discount": 0.02,
"tax": 0.08,
"returnflag": "N",
"linestatus": "O",
"shipdate": "Mon Jul 01 00:00:00 BST 1996",
"commitdate": "Sat Jul 20 00:00:00 BST 1996",
"receiptdate": "Fri Jul 12 00:00:00 BST 1996",
"shipinstruct": "TAKE BACK RETURN",
"shipmode": "SHIP",
"comment": "s. regular requ",
"order": {
    "orderkey": 535111,
    "orderstatus": "O",
    "totalprice": 48350.03,
    "orderdate": "Thu May 02 00:00:00 BST 1996",
    "orderpriority": "3-MEDIUM",
    "clerk": "Clerk#000000665",
    "shippriority": 0,
    "comment": "fluffily regular requests. f",
    "order": {
        "custkey": 10711,
        "name": "Customer#000010711",
        "address": "e3VJ63sxe8qAaKt 8 4daV0IE3CA9",
        "phone": "14-529-725-9738",
        "acctbal": 5983.81,
        "mktsegment": "BUILDING",
        "comment": "onic, stealthy ideas haggle carefully across the furi",
        "customer": {
            "nationkey": 4,
            "name": "EGYPT",
            "comment": "y above the carefully unusual theodolites. final dugouts are quickly across the furiously regular d",
            "region": {
                "regionkey": 4,
                "name": "MIDDLE EAST",
                "comment": "uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl"
            }
        }
    }
},
"partsupp": {
    "availqty": 2155,
    "supplycost": 123.82,
    "comment": "arefully along the idly even accounts. asymptotes beside the slyly regular deposits boost since the busily unusual excus",
    "part": {
        "partkey": 10204,
        "name": "rosy chiffon blush burlywood white",
        "mfgr": "Manufacturer#5",
        "brand": "Brand#55",
        "type": "LARGE PLATED TIN",
        "size": 23,
        "container": "JUMBO PACK",
        "retailprice": 1114.2,
        "comment": " ironic ideas use care"
    },
    "supplier": {
        "suppkey": 985,
        "name": "Supplier#000000985",
        "address": "kzI8mk3jN9F67EStJ 8dlpx 6GwZYwzXPFOKJ5R",
        "phone": "11-131-656-2612",
        "acctbal": 3524.1,
        "comment": "ut the furiously final deposits integrate according to th",
        "nation": {
            "nationkey": 1,
            "name": "ARGENTINA",
            "comment": "al foxes promise slyly according to the regular accounts. bold requests alon",
            "region": {
                "regionkey": "1",
                "name": "AMERICA",
                "comment": "hs use ironic, even requests. s"
            }
        }
    }
}

} Я не знаю, в чем проблема. У меня есть 150 тысяч таких документов, и я хочу получить эти результаты, но получаю эту ошибку.

30.03.2016

  • Пожалуйста, включите также примеры документов MongoDB 31.03.2016
  • Добавлен образец @Saleem 31.03.2016
  • см. мой пост ниже. это должно исправить ошибку по крайней мере 31.03.2016

Ответы:


1

Ваша проблема заключается в

{ $group : {
    _id : { "returnflag" :1, "linestatus" : 1},  <---

Здесь "returnfalg":1 не поддерживается. он действителен в $project, а не в $group. Если вы хотите создать составной ключ, попробуйте

_id : { "returnflag" :"$returnflag", "linestatus" : "$linestatus"}

Я полагаю, вы пытаетесь сгруппировать по returnflag и linestatus

Это должно исправить вашу ошибку, по крайней мере.

30.03.2016

2

Я уже получил ответ. Я должен изменить этот следующий код

_id : { "returnflag" :1, "linestatus" : 1},

to

_id : { "returnflag" :"$returnflag", "linestatus" : "$linestatus"},

муравей работает.

30.03.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..