首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB作为时序数据库:在现有时间之间插入“旧”数据

MongoDB作为时序数据库:在现有时间之间插入“旧”数据
EN

Stack Overflow用户
提问于 2014-02-24 12:14:24
回答 1查看 265关注 0票数 0

我正在考虑使用MongoDB作为时间序列数据库。我的问题是,我的应用程序需要时间倒退的能力,并填补时间序列数据中的空白。例如,我可能有时间1,2,3,6的数据。在报告时间10之后,我可能需要插入时间4,5,6的数据。插入数据是否实用,或者我是否会因为需要使用缓慢/复杂的操作而遭受巨大的性能影响?使用相同(或可能是新的)值更新时间6会很简单,还是需要不同的操作来插入新数据,然后更新现有数据?

EN

回答 1

Stack Overflow用户

发布于 2014-02-26 13:48:31

使用更新和upsert标志很容易做到这一点(MongoDB太棒了!)下面是一些示例python代码,可以实现这一点。

代码语言:javascript
复制
import time
import datetime
import random
import csv
import os
import zipfile
import json
import pymongo
from pymongo import Connection

client = Connection('localhost')
db = client.pan2
collection = db.well1

maxloop = 10000
x = 1
y = random.randint(100,999)/random.randint(1,10)
v1 = 'value'+str(random.randint(1,10))
v2 = 'value'+str(random.randint(1,10))
v3 = 'value'+str(random.randint(1,10))

elaptime = time.clock()

while maxloop > 0:
    collection.update({'timestamp': x}, {'$set': {'value1':y, v1 : y/2, v2 : y/4}}, upsert=True)
    maxloop = maxloop - 1
    x = x + 1

elaptime=elaptime-time.clock()*-1
print("Processing time was", elaptime, "seconds")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21978760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档