angularjs - 用 golang 重复记录

标签 angularjs node.js go

我是 Golang 的新手,我想在 mongodb 中读取汽车记录,所以我最多有 29 条记录 我创建了一个 cars.go 充当 Controller 并用该代码填充它

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
   }
]

我该如何解决这个问题???

最佳答案

不太明白,所以我假设问题是多行具有相同的数据。

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

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;

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

关于angularjs - 用 golang 重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35254401/

相关文章:

javascript - 使用 $http 获取数据以与自定义服务一起使用

javascript - 不允许双引号的正则表达式不起作用

javascript - Stripe : Must provide source or customer

mysql - 计算 Golang 中数据库的查询次数?

javascript - 减少用于测试 angularjs Controller 的样板文件

angularjs - 使用 Grunt 预处理和替换环境变量

Javascript在循环中将函数插入数组

javascript - NodeJS JSON.parse 抛出错误

database - 如何使用这些包 "google.golang.org/appengine/mail"在 Go 中上传附件

go - $GOPATH/go.mod 存在但不应该在 AWS Elastic Beanstalk 中