Javascript 在MongoDB数据库中查找更改
我正在设计一个MongoDB数据库,它与一个脚本一起工作,该脚本定期轮询资源并返回存储在数据库中的响应。现在我的数据库有一个集合,包含四个字段,id,name,timestamp和data 我需要能够找出哪些名称在脚本运行期间的数据字段中发生了更改,哪些没有。 在伪代码中Javascript 在MongoDB数据库中查找更改,javascript,database-design,mongodb,Javascript,Database Design,Mongodb,我正在设计一个MongoDB数据库,它与一个脚本一起工作,该脚本定期轮询资源并返回存储在数据库中的响应。现在我的数据库有一个集合,包含四个字段,id,name,timestamp和data 我需要能够找出哪些名称在脚本运行期间的数据字段中发生了更改,哪些没有。 在伪代码中 if(data[name][timestamp]==data[name][timestamp+1]) //data has not changed store data in collection 1 else //data
if(data[name][timestamp]==data[name][timestamp+1]) //data has not changed
store data in collection 1
else //data has changed between script runs for this name
store data in collection 2
是否有一个查询可以做到这一点,而无需在集合中的每个项上迭代和运行javascript?有数以百万计的文档,所以这将是相当缓慢的
我是否应该在每次脚本运行时创建一个名为timestamp的新集合?这会使它更快/更有条理吗?是否有更好的模式可以使用
脚本每天运行一次,因此我不会很快遇到名称空间限制。好的,这是一个简洁的问题b/c基本上是:您必须迭代并在每个项目上运行javascript 这变得“整洁”的部分是,这与SQL解决方案必须做的事情没有什么不同。我的意思是,您基本上是将一个表连接到它自己,其中
x.1=x.1
和y.1=y.2
。即使关系数据库可以处理这样一个问题,但它肯定不会很快处理数百万条条目
所以事实是,你这样做是对的。这里是额外的细节,我会用它来让这个更干净
db.mycollection.find({flag:{$exists:false}}).foreach()
db.eval()
帮助提高速度老实说,如果你每天只跑一次,速度很可能会很好,特别是如果你只跑新记录的话。假设需要几分钟。好的,这是一个简洁的问题b/c基本上是:您必须迭代并在每个项目上运行javascript 这变得“整洁”的部分是,这与SQL解决方案必须做的事情没有什么不同。我的意思是,您基本上是将一个表连接到它自己,其中
x.1=x.1
和y.1=y.2
。即使关系数据库可以处理这样一个问题,但它肯定不会很快处理数百万条条目
所以事实是,你这样做是对的。这里是额外的细节,我会用它来让这个更干净
db.mycollection.find({flag:{$exists:false}}).foreach()
db.eval()
帮助提高速度