Вы можете просто сделать
1) Если вы хотите добавить одну запись
def update_tags(ref, new_tag):
coll.update({'ref': ref}, {'$push': {'tags': new_tag}})
, например:
{
"_id" : ObjectId("561c199e038e42b10956e3fc"),
"tags" : [ "tag1", "tag2", "tag3" ],
"ref" : "4780"
}
>> update_tags("4780", "tag4")
{'updatedExisting': True, u'nModified': 1, u'ok': 1, u'n': 1}
>> coll.find_one({"ref":"4780"})
{
"_id" : ObjectId("561c199e038e42b10956e3fc"),
"tags" : [ "tag1", "tag2", "tag3" , "tag4" ],
"ref" : "4780"
}
2) Если вы хотите для добавления нескольких записей
def update_tags(ref, new_tag):
coll.update({'ref': ref}, {'$pushAll': {'tags': new_tag}}) #type of new_tag is list
например:
{
"_id" : ObjectId("561c199e038e42b10956e3fc"),
"tags" : [ "tag1", "tag2", "tag3" ],
"ref" : "4780"
}
>> update_tags("4780", ["tag5", "tag6", "tag7"])
{'updatedExisting': True, u'nModified': 1, u'ok': 1, u'n': 1}
>> coll.find_one({"ref":"4780"})
{
"_id" : ObjectId("561c199e038e42b10956e3fc"),
"tags" : [ "tag1", "tag2", "tag3" , "tag4" , "tag5", "tag6", "tag7" ],
"ref" : "4780"
}
Примечание: Если ключ еще не присутствует, то mongo создаст новый ключ.
Что, если при нажатии мыши вы сравниваете временную метку для этой нажатой мыши с предыдущей зарегистрированной временной меткой?
подобно объявлению переменной с именем last_timestamp, а затем в новом действии создайте новое, сравните, запишите разницу, затем измените значение last_timestamp на самое новое
После исследований я построил этот скрипт (я думаю, что в записи у меня есть набор данных, называемый «данные»):
import pandas as pd
data_2 = data.sort_values(by='timestamp', ascending=False)
data_2.index = pd.RangeIndex(len(data_2.index))
data_2['timestamp_diff'] = '?'
for i in data_2['action']:
index_i = int(data_2[data_2['action']==i].index[0])
delta = 0
for j in range(index_i,len(data_2['action'])) :
if 'mouse' in data_2['action'][j] and 'pressed' in data_2['action'][j]:
delta+=1
if delta ==data_2['count'][index_i]:
print(data_2['count'][index_i])
data_2['timestamp_diff'][index_i] = round(data_2['timestamp'][index_i] - data_2['timestamp'][j],3)
else :
delta = delta
data = data_2.sort_values(by='timestamp')
data.index = pd.RangeIndex(len(data.index))
data