Mongodb 从mongo db集合中删除重复记录

Mongodb 从mongo db集合中删除重复记录,mongodb,mongodb-query,Mongodb,Mongodb Query,下面是我的收藏,您能告诉我如何编写代码从下面的收藏中删除重复记录吗?收藏中有重复记录,请向我解释如何从收藏中删除重复记录 /* 1 */ { "_id" : ObjectId("5e84200bdf949c00404ed5ff"), "area" : "573", "bc" : "GER", "bd" : "5

下面是我的收藏,您能告诉我如何编写代码从下面的收藏中删除重复记录吗?收藏中有重复记录,请向我解释如何从收藏中删除重复记录

   /* 1 */
{
    "_id" : ObjectId("5e84200bdf949c00404ed5ff"),
    "area" : "573",
    "bc" : "GER",
    "bd" : "52001450",
    "bg" : "52001450",
    "borg" : "cde5642",
    "bsg" : "51585929",
    "bsgname" : "INFO TECHNOLOGY",
    "consulting" : null,
    "mobilePhoneNumber" : null,
    "cfax" : null,
    "l" : "BERL",
    "cpgr" : null,
    "o" : "S",
    "friendlyCountryName" : "Germ",
    "ctel" : "+49",
    "mail" : "tl2625@ge.at.com",
    "exch" : "204",
    "ext" : "5408",
    "facsimileTelephoneNumber" : null,
    "givenName" : "POMAS",
    "employeeNumber" : "0249527",
    "jt" : "MC",
    "jtname" : "FLEX FORCE ENGINEER IV",
    "sn" : "LEMP",
  
}

/* 2*/

{
    "_id" : ObjectId("5e84200bdf949c00404ed601"),
    "area" : "573",
    "bc" : "GER",
    "bd" : "52001450",
    "bg" : "52001450",
    "borg" : "cde5642",
    "bsg" : "51585929",
    "bsgname" : "INFO TECHNOLOGY",
    "consulting" : null,
    "mobilePhoneNumber" : null,
    "cfax" : null,
    "l" : "BERL",
    "cpgr" : null,
    "o" : "S",
    "friendlyCountryName" : "Germ",
    "ctel" : "+49",
    "mail" : "tl2625@ge.at.com",
    "exch" : "204",
    "ext" : "5408",
    "facsimileTelephoneNumber" : null,
    "givenName" : "POMAS",
    "employeeNumber" : "0249527",
    "jt" : "MC",
    "jtname" : "FLEX FORCE ENGINEER IV",
    "sn" : "LEMP",

通过下一段代码,您可以找到重复的记录。 (提示:使用其他字段更改
…,
。)

然后通过过滤
\u id
删除结果:

cursor.forEach(function (doc){
...     db.collection.remove({"_id": doc.assets[0].assets_id});
... });

现在你只需要填写
你的其他字段,比如我填写的
区域
sn

你怎么能有两个具有相同objectId的文档?是的,更新了专家,谢谢。如果文档重复,你可以在“employeeNumber”上使用这个答案:“0249527”,如何删除重复的EmployeesHanks专家,请您更新我的查询需要如何更改。如果您对
注释有疑问,我会再次编辑答案。感谢专家,如果我的集合类似于:db.getCollection('employeerecords')。查找({})如何输入上述查询…我还需要创建新集合,添加重复记录,然后需要删除以进行测试。
aggregate
方法比
find更复杂,
find
只需根据一些过滤器查找记录,但聚合在每个步骤都有多个阶段(
find
有一个步骤)您可以使用新字段创建半表,最后,您可以通过
project
创建属性字段!因此,我建议您通过替换集合的名称来运行上述命令,然后删除结果ID。对于创建
db.getCollection('employeerecords')。插入({..})
用任意字段填充
..
,然后重复插入多次。但重复记录可以输入到集合中,我指的是列和值,但对象ID是唯一的。
cursor.forEach(function (doc){
...     db.collection.remove({"_id": doc.assets[0].assets_id});
... });