我在 pymongo 中制作了 Tow 函数,但是我想要的结果与我从函数中得到的不同,我该如何解决它?
I Made Tow function in pymongo but the out but that i want is different from i get from the function any ideas how can i fix it?
保存收盘价、品种、时间范围的函数
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
图片来自 mongodb
[2]: https://i.stack.imgur.com/RLtnz.png
图像来自 B 函数
[1]: https://i.stack.imgur.com/AtwSy.png
如果你看到功能 B 的图像只给出了时间范围但功能保存有 4 个时间范围
查看此循环:
for i in data:
Symbols[i['Symbol']] = [i['Price'],i['TimeFrame']]
如果您有来自 MongoDB 的相同 Symbol
,它将覆盖任何先前的值,因此您将只能获得您所看到的每个符号的最终值。
要修复它,您有几种选择:您可以检查密钥并创建值或将值附加到 Symbols;或者您可以在聚合查询中使用 $push
。
保存收盘价、品种、时间范围的函数
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
图片来自 mongodb [2]: https://i.stack.imgur.com/RLtnz.png
图像来自 B 函数 [1]: https://i.stack.imgur.com/AtwSy.png
如果你看到功能 B 的图像只给出了时间范围但功能保存有 4 个时间范围
查看此循环:
for i in data:
Symbols[i['Symbol']] = [i['Price'],i['TimeFrame']]
如果您有来自 MongoDB 的相同 Symbol
,它将覆盖任何先前的值,因此您将只能获得您所看到的每个符号的最终值。
要修复它,您有几种选择:您可以检查密钥并创建值或将值附加到 Symbols;或者您可以在聚合查询中使用 $push
。