Mongo DB shell,如何计算集合中的重复条目
Mongo DB shell, how to count duplicate entries in a collection
Mongo DB shell(通过使用JS文件运行):
运行"查找"命令后,我必须找出结果中有多少重复行。由于集合可以具有不同的 JSON,因此我必须解析每个 JSON 对象进行比较。
简而言之,如何枚举来自 bson 对象的键?
例如,如果我们查看以下 4 个 JSON 条目:
// 1
{
"_id" : ObjectId("1"),
"Date" : "2012-06-17",
"k1" : "v1",
"k2" : "v2",
"k3" : "v3",
"k4" : "v4",
}
// 2
{
"_id" : ObjectId("2"),
"Date" : "2012-06-17",
"key1" : "v1",
"key2" : "v2",
}
// 3
{
"_id" : ObjectId("3"),
"Date" : "2012-06-18",
"k1" : "v1",
"k2" : "v2",
"k3" : "v3",
"k4" : "v4",
}
// 4
{
"_id" : ObjectId("4"),
"Date" : "2012-06-18",
"rk1" : "v1",
"rk2" : "v2",
"bk3" : "v3",
"bk4" : "v4",
"ck5" : "v5",
"ck6" : "v6",
}
我想在比较时忽略"_id"和"日期"键。我想忽略"_id",因为它是 mongo 特定的,我想忽略"日期",因为它是我的要求。
钥匙本身是多种多样的。在每个 JSON 文档中,键名称不同,键值对的数量也不同。
在上述情况下,我希望"1"和"3"被识别为相同(重复)。
我该怎么做?
如何枚举来自 bson 对象的键?
也许stringify
可能会派上用场。假设 1 和 3 称为 data1
和 data3
.重置 id 和日期,您将能够比较它们:
data1._id = null;
data3._id = null;
data1.Date = null;
data3.Date = null;
var eq = JSON.stringify(data1) === JSON.stringify(data3); //=> true
如果我没记错的话,shell 中有一些叫做 friendlyEqual
的方法也可以做同样的事情。在这种情况下,您应该能够使用以下内容:var eq = friendlyEqual(data1,data3);
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 根据元素和容器大小计算边距
- Meteor-将选定窗体中的对象添加到集合中
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 主干集合重置和解析
- 使用数据上的角度更改设置集合的第一个元素的动画
- 为集合分配大量的模型弹药
- 如何使用backbone.js从集合中获取模型名称
- 使用D3.js计算带有字母间距的文本长度
- 如何计算mongodb中两个集合中一个字段的不同值的数量
- 如何计算字符串集合(0.5000个元素)的哈希代码
- 在不使用集合的情况下将服务器端计算返回到客户端
- 集合字段中的流星计算值
- Mongo DB shell,如何计算集合中的重复条目
- 计算 mongodb 集合中的最小值、最大值和平均值
- Meteor计算两个集合的值
- 基于父集合中的子对象计算的属性
- Javascript ES6集合的计算/时间复杂性
- jQuery.each是否在每次迭代中计算集合表达式
- 我如何计算JSON集合中的所有欺骗值