保存Close,Symbol, Timeframe的函数
def Save_(self,collection,symbol,price,TF):
db = self.get_db('MTF')[collection]
B = {'ts':time.time(),"Symbol":symbol,
"Price":price,'TimeFrame':TF}
data = db.insert_one(B)
return data
从mongodb获取数据的函数
def find_all(self,collection):
db = self.get_db('MTF')[collection]
Symbols ={}
data = db.find({})
for i in data:
Symbols[i['Symbol']] = [i['Price'],i['TimeFrame']]
return Symbols
images from mongodb[2]: https://i.stack.imgur.com/RLtnz.png
images from B[1]: https://i.stack.imgur.com/AtwSy.png
如果你看到函数B的图像只给了我一个时间框架,但函数保存有4个时间框架
看看这个循环:
for i in data:
Symbols[i['Symbol']] = [i['Price'],i['TimeFrame']]
如果你有相同的Symbol
来自MongoDB,它会覆盖任何以前的值,所以你只会得到每个符号的最终值,这就是你所看到的。
要修复它,你有几个选项:你可以检查键并创建或附加值到Symbols;或者您可以在聚合查询中使用$push
。