2016-02-07 4 views
-2

Я новичок в Golang я хочу, чтобы прочитать запись автомобиля в MongoDB так что я до 29 записи я создать cars.go выступать в качестве контроллера и заполнить его с этим кодомповторяющиеся записи с golang

func (controller CarController) GetIndex(c *gin.Context) { 
    carList:=controller.carService.Find(&bson.M{}) 
    c.JSON(http.StatusOK, &carList) 
    //fmt.Println(carList) 
} 

и в моем carService.go я закодированы

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 

} 

в моем main.go маршрутизатор был

router.GET("/car",carBaseController.GetIndex) 

когда я проверить ели лис консоль с fmt.Println (Карлистские) я увидеть repeate записи, как этот

[ 
    { 
     "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 
    } 
] 

, как я могу решить эту проблему ???

+2

В чем проблема (при условии, что проблема 'async')? – Nix

ответ

1

Не уверен, что понял, поэтому я предполагаю, что проблема заключается в том, что несколько строк имеют одинаковые данные.

Если вы посмотрите на id своих записей, все они разные, что означает, что на самом деле это разные записи. Я предполагаю, что вы добавили один и тот же объект несколько раз в MongoDB без указания ObjectId. В результате Монго не смог обнаружить дубликаты и принял запись как новую.

В MongoDB документы, хранящиеся в коллекции, требуют уникального поля _id, которое действует как первичный ключ. MongoDB использует ObjectIds как значение по умолчанию для поля _id, если поле _id не указано;

Очистите свой дБ, создайте осмысленный идентификатор документа в своей коллекции монго (more info here), и все должно быть в порядке.

Смежные вопросы