Как заставить mongodb отображать вычисления, используемые в качестве критерия сортировки - PullRequest
0 голосов
/ 01 марта 2019

Как сделать так, чтобы вычисление, использованное для сортировки в третьей строке, также отображалось?

db.stocks.aggregate([
  {$unwind: '$tickers'},
  {"$sort": {"_id": 1, "1 - (tickers.open/tickers.close)": -1}},
  {"$group": {
    "_id": "$_id",
    "ticker": { "$first": "$tickers.ticker"},
    "open": { "$first": "$tickers.open" },
    "close": { "$first": "$tickers.close" }
    }}
]);

1 Ответ

0 голосов
/ 01 марта 2019

Надеюсь, что это работает для вас

db.stocks.aggregate([
  {$unwind: '$tickers'},
  {$addFields: {"tickers.calc": {$subtract: [1,{$divide: ["$tickers.open","$tickers.close"]}] } }},
  {"$sort": {"_id": 1, "tickers.calc": -1}},
  {"$group": {
    "_id": "$_id",
    "ticker": { "$first": "$tickers.ticker"},
    "open": { "$first": "$tickers.open" },
    "close": { "$first": "$tickers.close" },
    "calc": { "$first": "$tickers.calc" }
    }}
]);
...