MongoDB中两个集合之间的Diff()
Diff() between two collections in MongoDB
我做过调查。如果这是一个重复的问题,我很抱歉,但其他问题的解决方案并不适合我,因此,我提出了一个新的问题。
用Javascript比较两个集合的最好方法是什么?
我在这个Mongo文档格式中有数千个这样的标题:
{
"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"
}
}
我今天跑了我的刮刀。我将来会再次运行它,并将其存储在第二个集合中。此外,我希望能够比较三个特定的头对象,即server
, x-aspnet-version
和x-powered-by
,并检测是否有任何整数增量。遍历两个集合并执行diff()的最佳方法是什么?
我做的对吗?如有任何建议,我将不胜感激。
几点建议:
您可以使用url和访问日期的组合(至少是datetime对象的一部分)作为这些对象的_id,因为从我可以告诉您计划每月抓取每个url一次。
的例子:
{
"_id": {
"url": "www.google.com",
"date": ISODate("2013-03-01"),
},
// Other attributes
}
这会产生性能、唯一性和查询红利(参见这篇4sq博客文章)。你可以这样查询:
db.collection.find({
"_id": {
"$gte": {
"url": yourUrl,
"date": rangeStart
},
"$lt": {
"url": yourUrl,
"date": rangeEnd
},
}
})
这产生优秀的,很好地排序(按url然后按日期,这似乎正是你想要的)结果。你也可以使用这个索引来执行覆盖查询(在_id字段),如果你只是想要一个很好的集合的所有url和月份,你已经刮(这可以设置你很好地通过每个url一次一个)。
如果你有你感兴趣的特定文档的属性比较(例如headers.server
)和一个特定的比较你想为他们做(例如寻找任何增量版本号),我将使用某种正则表达式的元素相关的版本号(快速和肮脏的可能只是一个检索所有数字元素)和图每个url(我认为这将让你想象改变随着时间的推移,服务器软件)。只要按顺序扫描这些属性,并在字符串不相同时触发一些事件(然后报告更改或更改的数字部分),您就可以轻松地报告任何这些属性的更改。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 全局变量和全局对象的属性之间有什么区别吗
- java.net和javascript之间正则表达式的差异
- JavaScript中的函数和对象之间没有区别吗?
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- Jquery在函数之间传递表行
- 根据某些条件在视图之间切换
- 在控制器和数据对象之间同步数据
- d3中堆栈函数和嵌套函数之间的差异
- JQuery:在页面之间滑动
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 操作放置在画布上的元素之间的连接
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- jquery在表单之间切换
- Nodejs API控制器,用于在API之间切换
- 如何在aspx页面之间传递参数
- 在索引.html和应用.js [node.js] 之间共享变量
- 什么是&&在没有if的行中的变量之间
- 如何在网站上显示两个文本之间的差异(如diff或WinMerge,但在JS中)
- MongoDB中两个集合之间的Diff()