我做过研究.如果这是一个重复的问题我很抱歉,但其他问题的解决方案并不是我的合适,因此,我提出了一个新问题.
使用Javascript比较两个集合的最佳方法是什么?
{
"url": "google.com",
"headers": {
"location": "http://www.google.com/",
"content-type": "text/html; charset=UTF-8",
"date": "Mon, 25 Mar 2013 18:12:08 GMT",
"expires": "Wed, 24 Apr 2013 18:12:08 GMT",
"cache-control": "public, max-age=2592000",
"server": "gws",
"content-length": "219",
"x-xss-protection": "1; mode=block",
"x-frame-options": "SAMEORIGIN"
}
}
我今天跑了刮刀.在将来,我会再次运行它,并将其存储在第二个集合中.另外,我希望能够比较三个特定的头对象,即服务器,x-aspnet-version和x-powered-by,并检测是否有任何整数增量.
迭代两个集合并执行diff()的最佳方法是什么?
我做得对吗?任何建议都会非常感激.
解决方法:
一些建议:
你可以使用url和访问日期的组合(至少是datetime对象的一部分)作为这些对象的_id,因为我可以告诉你计划每月抓一个url.
例:
{
"_id": {
"url": "www.google.com",
"date": ISODate("2013-03-01"),
},
// Other attributes
}
这会产生性能,唯一性和查询红利(见this 4sq blog post).你可以查询做类似的事情:
db.collection.find({
"_id": {
"$gte": {
"url": yourUrl,
"date": rangeStart
},
"$lt": {
"url": yourUrl,
"date": rangeEnd
},
}
})
哪个产生优秀,排序很好(按日期,按日期,这似乎是你想要的)结果.你也可以使用这个索引来执行覆盖的查询(在_id字段上),如果你只想要一个很好的所有网址和你已经抓过的月份(这可以很好地让你很好地通过每个网址一次) .
如果你有比较感兴趣的文档的特定属性(例如headers.server)和你想要为它们做的特定比较(例如寻找版本号的任何增量),我会使用某种正则表达式获取与版本号相关的元素(快速和脏的可能只是检索所有数字元素)并为每个URL绘制图形(我假设这可以让您可视化服务器软件随时间的变化).您可以通过按顺序扫描任何这些属性来轻松报告,并在字符串不相同时引发某些事件(可能随后报告更改或更改的数字部分).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。