i am new in Golang i want to read car record in mongodb so i have up to 29 record i create a cars.go act as a controller and fill it with that code
func (controller CarController) GetIndex(c *gin.Context) {
carList:=controller.carService.Find(&bson.M{})
c.JSON(http.StatusOK, &carList)
//fmt.Println(carList)
}
and in my carService.go i coded
func (r CarService) Find(query *bson.M) (cars []models.Car) {
session, _ := mgo.Dial(r.uri)
defer session.Close()
session.SetSafe(&mgo.Safe{})
collection := session.DB(r.dbName).C(r.collectionName)
collection.Find(query).All(&cars)
fmt.Println(cars)
return cars
}
in my main.go router was
router.GET("/car",carBaseController.GetIndex)
when i test the fir-fox console with fmt.Println(carList) i see the repeate records like that
[
{
"Id":"56b636688a47a60aa8601f57",
"model":"ayman",
"brand":"islamic",
"CreatedAt":6248241353327640577
},
{
"Id":"56b63b658a47a605dc9e8e38",
"model":"ayman",
"brand":"islamic",
"CreatedAt":6248246838000877569
},
{
"Id":"56b642728a47a62364f3e0e0",
"model":"ayman 0",
"brand":"islamic 0",
"CreatedAt":6248254590416846849
},
{
"Id":"56b642728a47a62364f3e0e1",
"model":"ayman 1",
"brand":"islamic 1",
"CreatedAt":6248254590416846850
},
{
"Id":"56b642728a47a62364f3e0e2",
"model":"ayman 2",
"brand":"islamic 2",
"CreatedAt":6248254590416846851
},
{
"Id":"56b642728a47a62364f3e0e3",
"model":"ayman 3",
"brand":"islamic 3",
"CreatedAt":6248254590416846852
},
{
"Id":"56b642728a47a62364f3e0e4",
"model":"ayman 4",
"brand":"islamic 4",
"CreatedAt":6248254590416846853
},
{
"Id":"56b642728a47a62364f3e0e5",
"model":"ayman 5",
"brand":"islamic 5",
"CreatedAt":6248254590416846854
},
{
"Id":"56b642728a47a62364f3e0e6",
"model":"ayman 6",
"brand":"islamic 6",
"CreatedAt":6248254590416846855
},
{
"Id":"56b642728a47a62364f3e0e7",
"model":"ayman 7",
"brand":"islamic 7",
"CreatedAt":6248254590416846856
},
{
"Id":"56b642728a47a62364f3e0e8",
"model":"ayman 8",
"brand":"islamic 8",
"CreatedAt":6248254590416846857
},
{
"Id":"56b642728a47a62364f3e0e9",
"model":"ayman 9",
"brand":"islamic 9",
"CreatedAt":6248254590416846858
},
{
"Id":"56b642728a47a62364f3e0ea",
"model":"ayman 10",
"brand":"islamic 10",
"CreatedAt":6248254590416846859
},
{
"Id":"56b642728a47a62364f3e0eb",
"model":"ayman 11",
"brand":"islamic 11",
"CreatedAt":6248254590416846860
},
{
"Id":"56b642728a47a62364f3e0ec",
"model":"ayman 12",
"brand":"islamic 12",
"CreatedAt":6248254590416846861
},
{
"Id":"56b642728a47a62364f3e0ed",
"model":"ayman 13",
"brand":"islamic 13",
"CreatedAt":6248254590416846862
},
{
"Id":"56b642728a47a62364f3e0ee",
"model":"ayman 14",
"brand":"islamic 14",
"CreatedAt":6248254590416846863
},
{
"Id":"56b642728a47a62364f3e0ef",
"model":"ayman 15",
"brand":"islamic 15",
"CreatedAt":6248254590416846864
},
{
"Id":"56b642728a47a62364f3e0f0",
"model":"ayman 16",
"brand":"islamic 16",
"CreatedAt":6248254590416846865
},
{
"Id":"56b642728a47a62364f3e0f1",
"model":"ayman 17",
"brand":"islamic 17",
"CreatedAt":6248254590416846866
},
{
"Id":"56b642728a47a62364f3e0f2",
"model":"ayman 18",
"brand":"islamic 18",
"CreatedAt":6248254590416846867
},
{
"Id":"56b642728a47a62364f3e0f3",
"model":"ayman 19",
"brand":"islamic 19",
"CreatedAt":6248254590416846868
},
{
"Id":"56b642728a47a62364f3e0f4",
"model":"ayman 20",
"brand":"islamic 20",
"CreatedAt":6248254590416846869
},
{
"Id":"56b642728a47a62364f3e0f5",
"model":"ayman 21",
"brand":"islamic 21",
"CreatedAt":6248254590416846870
},
{
"Id":"56b642728a47a62364f3e0f6",
"model":"ayman 22",
"brand":"islamic 22",
"CreatedAt":6248254590416846871
},
{
"Id":"56b642728a47a62364f3e0f7",
"model":"ayman 23",
"brand":"islamic 23",
"CreatedAt":6248254590416846872
},
{
"Id":"56b642728a47a62364f3e0f8",
"model":"ayman 24",
"brand":"islamic 24",
"CreatedAt":6248254590416846873
},
{
"Id":"56b642728a47a62364f3e0f9",
"model":"ayman 25",
"brand":"islamic 25",
"CreatedAt":6248254590416846874
},
{
"Id":"56b642728a47a62364f3e0fa",
"model":"ayman 26",
"brand":"islamic 26",
"CreatedAt":6248254590416846875
},
{
"Id":"56b642728a47a62364f3e0fb",
"model":"ayman 27",
"brand":"islamic 27",
"CreatedAt":6248254590416846876
},
{
"Id":"56b642728a47a62364f3e0fc",
"model":"ayman 28",
"brand":"islamic 28",
"CreatedAt":6248254590416846877
},
{
"Id":"56b642728a47a62364f3e0fd",
"model":"ayman 29",
"brand":"islamic 29",
"CreatedAt":6248254590416846878
},
{
"Id":"56b6e2f98a47a60d50c13ef9",
"model":"ayman 0",
"brand":"islamic 0",
"CreatedAt":6248431092097875969
},
{
"Id":"56b6e2f98a47a60d50c13efa",
"model":"ayman 1",
"brand":"islamic 1",
"CreatedAt":6248431092097875970
},
{
"Id":"56b6e2f98a47a60d50c13efb",
"model":"ayman 2",
"brand":"islamic 2",
"CreatedAt":6248431092097875971
},
{
"Id":"56b6e2f98a47a60d50c13efc",
"model":"ayman 3",
"brand":"islamic 3",
"CreatedAt":6248431092097875972
},
{
"Id":"56b6e2f98a47a60d50c13efd",
"model":"ayman 4",
"brand":"islamic 4",
"CreatedAt":6248431092097875973
},
{
"Id":"56b6e2f98a47a60d50c13efe",
"model":"ayman 5",
"brand":"islamic 5",
"CreatedAt":6248431092097875974
},
{
"Id":"56b6e2f98a47a60d50c13eff",
"model":"ayman 6",
"brand":"islamic 6",
"CreatedAt":6248431092097875975
},
{
"Id":"56b6e2f98a47a60d50c13f00",
"model":"ayman 7",
"brand":"islamic 7",
"CreatedAt":6248431092097875976
},
{
"Id":"56b6e2f98a47a60d50c13f01",
"model":"ayman 8",
"brand":"islamic 8",
"CreatedAt":6248431092097875977
},
{
"Id":"56b6e2f98a47a60d50c13f02",
"model":"ayman 9",
"brand":"islamic 9",
"CreatedAt":6248431092097875978
},
{
"Id":"56b6e2f98a47a60d50c13f03",
"model":"ayman 10",
"brand":"islamic 10",
"CreatedAt":6248431092097875979
},
{
"Id":"56b6e2f98a47a60d50c13f04",
"model":"ayman 11",
"brand":"islamic 11",
"CreatedAt":6248431092097875980
},
{
"Id":"56b6e2f98a47a60d50c13f05",
"model":"ayman 12",
"brand":"islamic 12",
"CreatedAt":6248431092097875981
},
{
"Id":"56b6e2f98a47a60d50c13f06",
"model":"ayman 13",
"brand":"islamic 13",
"CreatedAt":6248431092097875982
},
{
"Id":"56b6e2f98a47a60d50c13f07",
"model":"ayman 14",
"brand":"islamic 14",
"CreatedAt":6248431092097875983
},
{
"Id":"56b6e2f98a47a60d50c13f08",
"model":"ayman 15",
"brand":"islamic 15",
"CreatedAt":6248431092097875984
},
{
"Id":"56b6e2f98a47a60d50c13f09",
"model":"ayman 16",
"brand":"islamic 16",
"CreatedAt":6248431092097875985
},
{
"Id":"56b6e2f98a47a60d50c13f0a",
"model":"ayman 17",
"brand":"islamic 17",
"CreatedAt":6248431092097875986
},
{
"Id":"56b6e2f98a47a60d50c13f0b",
"model":"ayman 18",
"brand":"islamic 18",
"CreatedAt":6248431092097875987
},
{
"Id":"56b6e2f98a47a60d50c13f0c",
"model":"ayman 19",
"brand":"islamic 19",
"CreatedAt":6248431092097875988
},
{
"Id":"56b6e2f98a47a60d50c13f0d",
"model":"ayman 20",
"brand":"islamic 20",
"CreatedAt":6248431092097875989
},
{
"Id":"56b6e2f98a47a60d50c13f0e",
"model":"ayman 21",
"brand":"islamic 21",
"CreatedAt":6248431092097875990
},
{
"Id":"56b6e2f98a47a60d50c13f0f",
"model":"ayman 22",
"brand":"islamic 22",
"CreatedAt":6248431092097875991
},
{
"Id":"56b6e2f98a47a60d50c13f10",
"model":"ayman 23",
"brand":"islamic 23",
"CreatedAt":6248431092097875992
},
{
"Id":"56b6e2f98a47a60d50c13f11",
"model":"ayman 24",
"brand":"islamic 24",
"CreatedAt":6248431092097875993
},
{
"Id":"56b6e2f98a47a60d50c13f12",
"model":"ayman 25",
"brand":"islamic 25",
"CreatedAt":6248431092097875994
},
{
"Id":"56b6e2f98a47a60d50c13f13",
"model":"ayman 26",
"brand":"islamic 26",
"CreatedAt":6248431092097875995
},
{
"Id":"56b6e2f98a47a60d50c13f14",
"model":"ayman 27",
"brand":"islamic 27",
"CreatedAt":6248431092097875996
},
{
"Id":"56b6e2f98a47a60d50c13f15",
"model":"ayman 28",
"brand":"islamic 28",
"CreatedAt":6248431092097875997
},
{
"Id":"56b6e2f98a47a60d50c13f16",
"model":"ayman 29",
"brand":"islamic 29",
"CreatedAt":6248431092097875998
}
]
how i can solve this problem ???
Not sure to understand, so I assume the problem is that multiple lines have the same data.
If you look at the id
of your records, they are all different, meaning that they actually are different records. I guess you inserted the same object multiple times in MongoDB without specifying an ObjectId
. As a result, Mongo couldn't detect the duplicates and accepted the record as new.
In MongoDB, documents stored in a collection require a unique _id field that acts as a primary key. MongoDB uses ObjectIds as the default value for the _id field if the _id field is not specified;
Clean up your db, create a meaningful document id in your mongo collection (more info here) and you should be fine.