小编Gar*_*ary的帖子

即使不是空的,Mgo也会省略字段

我想知道是否有任何方法可以让一个不会被提交到mgo的stuct字段,即使它不是空的.

我发现这样做的唯一方法是将字段设为小写,这使得访问变得很麻烦.还有另外一种方法吗?

这是一个例子,我的目标是不将SSN提交到数据库中,但仍然是大写的.

package main

import (
  "fmt"
    "crypto/sha1"
    "encoding/base64"
    "labix.org/v2/mgo"
)

type Person struct{
  Name string
  SSN string
  HashedSSN string
}

func main() {
  bob := Person{"Bob", "fake_ssn", ""}
  hasher := sha1.New()
  hasher.Write( []byte(bob.SSN))
  sha := base64.URLEncoding.EncodeToString(hasher.Sum(nil))
  bob.HashedSSN = sha
  mgoSession, err := mgo.Dial("localhost:27017")
  if err != nil {
    fmt.Println("mongo_config#initMongoSessions : Could not dial to mgoSession", err)
  } else {
    mgoSession.DB("test").C("person").Insert(bob)
  }
}
Run Code Online (Sandbox Code Playgroud)

谢谢,

go mongodb mgo

8
推荐指数
1
解决办法
1717
查看次数

Golang 错误函数参数对于新的 goroutine 来说太大了

我正在使用 go 1.4 运行一个程序,我试图将一个大结构传递给一个 go 函数。

go ProcessImpression(network, &logImpression, campaign, actualSpent, partnerAccount, deviceId, otherParams)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

runtime.newproc: function arguments too large for new goroutine
Run Code Online (Sandbox Code Playgroud)

我已经转向通过引用传递,这有帮助,但我想知道是否有某种方法可以在 go 函数中传递大型结构。

谢谢,

go

6
推荐指数
1
解决办法
2890
查看次数

Elixir 中的 Postgres 健康检查

我正在尝试对我的 postgres 数据库进行简单的健康检查以获取长生不老药。

在 Rails 中,我会做类似的事情: ActiveRecord::Base.verify_active_connections

灵丹妙药上有没有类似的东西?

postgresql elixir

5
推荐指数
1
解决办法
883
查看次数

优步API iOS OAuth 2.0

我试图创建一个iOS,它将使用优步API来做一些事情,比如获取游乐设施和什么不是.我试图在iPhone上实现OAuth 2.0而不使用任何服务器端帮助.

那可能吗?有没有人这样做过?

以下是一些参考:

优步认证:https://developer.uber.com/v1/auth/

Oauth 2.0:https://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified

oauth ios oauth-2.0 uber-api

2
推荐指数
1
解决办法
2694
查看次数

Golang Mgo起搏

我正在编写一个快速写入mongodb的应用程序.对于mongodb和mgo来说太快了.我的问题是,有没有办法让我确定mongo无法跟上并开始阻止?但我也不想不必要地阻止.以下是模拟问题的代码示例:

package main

import (
  "labix.org/v2/mgo"
  "time"
  "fmt"
)

// in database name is a string and age is an int

type Dog struct{
  Breed string "breed"
}

type Person struct{
  Name string "name"
  Pet Dog `bson:",inline"`
  Ts        time.Time
}

func insert(session *mgo.Session, bob Person){
  err := session.DB("db_log").C("people").Insert(&bob)
  if err != nil {
    panic("Could not insert into database")
  }
}

func main() {
  session, _ := mgo.Dial("localhost:27017")
  bob := Person{Name : "Robert", Pet : Dog{}}
  i := 0
  for { …
Run Code Online (Sandbox Code Playgroud)

go mgo

1
推荐指数
1
解决办法
2563
查看次数

去运行时崩溃

我的代码错误出现了像这样的strack跟踪:

unexpected fault address 0x0
fatal error: fault
[signal 0xb code=0x80 addr=0x0 pc=0x407d50]

goroutine 52246872 [running]:
runtime.throw(0xad6a77)
    /usr/local/go/src/pkg/runtime/panic.c:464 +0x69 fp=0xc214d2c1f8
runtime.sigpanic()
    /usr/local/go/src/pkg/runtime/os_linux.c:237 +0xe9 fp=0xc214d2c210
hash_lookup(0x671ec0, 0xc21001eed0, 0xc214d2c2d0)
    /usr/local/go/src/pkg/runtime/hashmap.c:502 +0x150 fp=0xc214d2c290
runtime.mapaccess(0x671ec0, 0xc21001eed0, 0xc214d2c318, 0xc214d2c328, 0xc214d2c330)
    /usr/local/go/src/pkg/runtime/hashmap.c:1004 +0x57 fp=0xc214d2c2c0
runtime.mapaccess2(0x671ec0, 0xc21001eed0, 0x389c, 0x2060009ae, 0xad4dc0, ...)
    /usr/local/go/src/pkg/runtime/hashmap.c:1061 +0x5d fp=0xc214d2c308
growmobile.com/rtb/cache.HistogramCheck(0xc2121eafd0, 0xc, 0xeca93c6a0, 0x852a9f8, 0xad4dc0, ...)
    /mnt/rtb_server/go/src/growmobile.com/rtb/cache/histogram_cache.go:211 +0x16b fp=0xc214d2c798
growmobile.com/rtb/controller.processBidRequest(0xc2121eafd0, 0xc, 0xeca93c6a0, 0x852a9f8, 0xad4dc0, ...)
    /mnt/rtb_server/go/src/growmobile.com/rtb/controller/bidder_logic.go:272 +0x7c2 fp=0xc214d2e928
----- stack segment boundary -----
growmobile.com/rtb/controller.Bid(0x7f7a14250ed8, 0xc2197b3a00, 0xc2157f9dd0)
    /mnt/rtb_server/go/src/growmobile.com/rtb/controller/controller.go:96 +0x903 fp=0x7f79f8dd9da0
net/http.HandlerFunc.ServeHTTP(0x800850, 0x7f7a14250ed8, 0xc2197b3a00, 0xc2157f9dd0) …
Run Code Online (Sandbox Code Playgroud)

runtime go

1
推荐指数
1
解决办法
2227
查看次数

标签 统计

go ×4

mgo ×2

elixir ×1

ios ×1

mongodb ×1

oauth ×1

oauth-2.0 ×1

postgresql ×1

runtime ×1

uber-api ×1