Вот моя запись Mon go:
> db.SBIN.find({'timestamp': ISODate('2020-03-09T09:25:05Z')})
{ "_id" : ObjectId("5e65be19c71d4f0ee849d961"), "tradable" : true, "mode" : "full", "instrument_token" : 779521, "last_price" : 256.75, "last_quantity" : 100, "average_price" : 258.86, "volume" : 13474712, "buy_quantity" : 1695192, "sell_quantity" : 1640323, "ohlc" : { "open" : 260.05, "high" : 262.75, "low" : 254.9, "close" : 270.5 }, "change" : -5.0831792975970425, "last_trade_time" : ISODate("2020-03-09T09:25:05Z"), "oi" : 0, "oi_day_high" : 0, "oi_day_low" : 0, "timestamp" : ISODate("2020-03-09T09:25:05Z"), "depth" : { "buy" : [ { "quantity" : 816, "price" : 256.7, "orders" : 4 }, { "quantity" : 2398, "price" : 256.65, "orders" : 3 }, { "quantity" : 4396, "price" : 256.6, "orders" : 10 }, { "quantity" : 9061, "price" : 256.55, "orders" : 24 }, { "quantity" : 19278, "price" : 256.5, "orders" : 65 } ], "sell" : [ { "quantity" : 4357, "price" : 256.75, "orders" : 3 }, { "quantity" : 12605, "price" : 256.8, "orders" : 12 }, { "quantity" : 31416, "price" : 256.85, "orders" : 13 }, { "quantity" : 9974, "price" : 256.9, "orders" : 9 }, { "quantity" : 9756, "price" : 256.95, "orders" : 10 } ] } }
Обратите внимание, что отметка времени "timestamp" : ISODate("2020-03-09T09:25:05Z")
в записи выше.
Однако, когда я попытайтесь прочитать last_price
для данного timestamp
, затем MongoDB вернет, как показано ниже:
> db.SBIN.find({'timestamp': ISODate('2020-03-09T09:25:05Z')}).forEach(function(x) {print(x.timestamp,x.last_price)})
Mon Mar 09 2020 14:55:05 GMT+0530 (IST) 256.75
Как мы видим выше, возвращенная временная метка равна Mon Mar 09 2020 14:55:05 GMT+0530 (IST) 256.75
, что точно GMT + 0530 моего местного часового пояса. Пожалуйста, игнорируйте значение 256.75
, поскольку оно является ценой акции.
ВОПРОС: Я не хочу преобразование этой метки времени, я хочу, чтобы Mon go возвращал метку времени так, как она вставлен.
- Неправильно ли я запрашиваю вопрос, ведущий к этой аномалии?
- Есть ли что-то еще неправильно в моем подходе?
- Эта проблема видна, когда я пытаюсь извлечь только указанные c поля, используя
forEach(function(x) ...
. Что-то не так с этим подходом?