Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

รับค่าที่ซ้ำกันของฟิลด์ใน MongoDB หรือไม่


ใช้วิธีการรวม () เพื่อรับค่าที่ซ้ำกันของฟิลด์ ให้เราสร้างคอลเลกชันที่มีเอกสารโดยใช้แบบสอบถามต่อไปนี้

> db.findAllNonDistinctDemo.insertOne({"UserName":"John","UserAge":28});{ "acknowledged" :true, "insertedId" :ObjectId("5c995078863d6ffd454bb647")}> db.findAllNonDistinctDemo insertOne({"UserName":"Larry","UserAge":21});{ "acknowledged" :true, "insertedId" :ObjectId("5c995081863d6ffd454bb648")}> db.findAllNonDistinctDemo.insertOne({"UserName":" Larry","UserAge":23});{ "acknowledged" :true, "insertedId" :ObjectId("5c995089863d6ffd454bb649")}> db.findAllNonDistinctDemo.insertOne({"UserName":"David","UserAge":22 });{ "รับทราบ" :จริง "insertedId" :ObjectId("5c995093863d6ffd454bb64a")}> db.findAllNonDistinctDemo.insertOne({"UserName":"John","UserAge":26});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c99509d863d6ffd454bb64b")}> db.findAllNonDistinctDemo.insertOne({"UserName":"Robert","UserAge":24});{ "acknowledged" :true, "insertedId" :ObjectId( "5c9950a7863d6ffd454bb64c")}> db.findAllNonDistinctDemo.insertOne({"ชื่อผู้ใช้":"Robert","UserAge":25} );{ "รับทราบ" :จริง "insertedId" :ObjectId("5c9950b1863d6ffd454bb64d")}> db.findAllNonDistinctDemo.insertOne({"UserName":"Mike","UserAge":29});{ "รับทราบ":จริง , "insertedId" :ObjectId("5c9950bc863d6ffd454bb64e")}

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find()

> db.findAllNonDistinctDemo.find().pretty();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้

{ "_id" :ObjectId("5c995078863d6ffd454bb647"), "UserName" :"John", "UserAge" :28}{ "_id" :ObjectId("5c995081863d6ffd454bb648"), "UserName" :"Larry", " UserAge" :21}{ "_id" :ObjectId("5c995089863d6ffd454bb649"), "UserName" :"Larry", "UserAge" :23}{ "_id" :ObjectId("5c995093863d6ffd454bb64a"), "User"Name" :"David , "UserAge" :22}{ "_id" :ObjectId("5c99509d863d6ffd454bb64b"), "UserName" :"John", "UserAge" :26}{ "_id" :ObjectId("5c9950a7863d6ffd454bb64c"), "UserName" :Robert", "UserAge" :24}{ "_id" :ObjectId("5c9950b1863d6ffd454bb64d"), "UserName" :"Robert", "UserAge" :25}{ "_id" :ObjectId("5c9950bc863d6ffd454bb64e"), "ชื่อผู้ใช้" :"ไมค์", "UserAge" :29}

ต่อไปนี้เป็นแบบสอบถามเพื่อค้นหาค่าที่ซ้ำกันทั้งหมดของเขตข้อมูลใน MongoDB

> db.findAllNonDistinctDemo.aggregate([... { "$group":{... "_id":"$UserName",... "Counter":{ "$sum":1 }.. . }},... { "$match":{... "Counter":{ "$gt":1 }... }}... ]).pretty();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ ระเบียนที่ซ้ำกันทั้งหมดสามารถมองเห็นได้ในขณะนี้

{ "_id" :"Robert", "Counter" :2 }{ "_id" :"Larry", "Counter" :2 }{ "_id" :"John", "Counter" :2 }