用golang重复记录

时间:2016-02-07 14:00:08

标签: angularjs node.js go

我是Golang的新手,我想阅读mongodb中的汽车记录,所以我有多达29条记录 我创建了一个cars.go充当控制器并用该代码填充

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(carList)测试fir-fox控制台时,我看到了重复的记录

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

我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:1)

不确定,所以我认为问题是多行具有相同的数据。

如果你查看记录的id,它们都是不同的,这意味着它们实际上是不同的记录。我猜你在MongoDB中多次插入同一个对象而没有指定ObjectId。结果,Mongo无法检测到重复项并将记录接受为新记录。

  

在MongoDB中,存储在集合中的文档需要一个唯一的_id字段作为主键。如果未指定_id字段,MongoDB使用ObjectIds作为_id字段的默认值;

清理你的数据库,在你的mongo集合中创建一个有意义的文档id(more info here),你应该没问题。