【发布时间】:2012-06-19 05:06:13
【问题描述】:
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 的,我想忽略“Date”,因为这是我的要求。
而且钥匙本身也是多种多样的。在每个 JSON 文档中,键名不同,键值对的数量也不同。
在上述情况下,我希望将“1”和“3”识别为相同(重复)。
我该怎么做?
如何从 bson 对象中枚举键?
【问题讨论】:
-
我认为您可以运行 map-reduce 来实现这一点……您想要返回什么?只是一组不同的属性映射,每个属性映射都有一个计数?
-
在这里查看 mongodb Map reduce mongodb.org/display/DOCS/MapReduce
标签: javascript json mongodb bson