問題タブ [mgo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - DBを開くベストプラクティス
注:これがこの投稿の最も正確なタイトルかどうかはわかりません。そうでない場合は、より適切なタイトルを教えてください。
現在、いくつかのハンドラーを持つサーバーを作成しています ( gojiを使用)。リクエストを受け取った後、私が持っている MongoDB データベースとやり取りしたい ( mgoを使用)。私の質問は:
リクエストを処理するたびにこの種のことを行うのは費用がかかると想定しています。
では、ハンドラー内からアクセスできるグローバル var を用意した方がよいでしょうか? だから私はこのようなものに行きます:
私の質問は、ここでのベストプラクティスは何ですか? リクエストが来るたびに DB を開くか、アプリケーションの全期間にわたって DB を開いたままにします。
mongodb - mgo を使用してドキュメントから名前付きの型エイリアスをアンマーシャリングする方法は?
unix タイムスタンプとしてエンコードされた JSON にしたい updated_at フィールドを持つ構造体があります。
私は動作していないように見える次のことを試しました.updated_atフィールドはMongoDBドキュメントからアンマーシャリングされることはありません:
構造体の MarshalJSON 関数を記述して、次のようなことを行う (UpdatedAt タイプを *time.Time に変更する) 一時的な解決策を見つけました。
これを行うためのより良い、またはよりエレガントなソリューションはありますか?
struct - Go と別の構造体のカスタム構造体型
カスタム構造体を別の構造体に保存する方法を理解するのに苦労しています(他の非常に多くのものの中でも)。現在、私のコードは次のようになっています。
ここで、getAll 関数の var results []dogs を取り除きたいと思います。代わりに、どうにかして Stuff 構造体から []dogs ビットを取得したいのですが、方法がわかりません。
これは私がこの関数を呼び出す方法です:
では、 Stuff で犬の型として宣言せずに、 Stuff 構造体に s := NewStuff(collection, dogs) のようなことを行うにはどうすればよいでしょうか (それは何でもかまいませんが、別の関数では、私が知っているすべての猫である可能性があります...) ?
ポイントは、63 匹の動物すべてに対してほぼ同じ getAll 関数を作成するのではなく、この getAll 関数を他の種類に再利用したいということです。ニャー。
mongodb - 新しい記録を取りに行きますか?
を使用して、新しいレコードまたは古いレコードのどちらで作業しているかを検出することは可能mgo
ですか?
私が言いたいことの例は、Rails ActiveRecord で実装されています。
object.new_record?
mongodb - mgo(Go)でインターフェースタイプをモデルとして使用するには?
さまざまなタイプの複数の組み込みノードで構成されるワークフローがあるとします。ノードはさまざまなタイプであるため、ここで Golang インターフェイスを使用することを考え、次のように思いつきました。
これらのワークフローは MongoDB に保存されており、サンプルのシード データが含まれています。mgo を使用して、ワークフローを見つけようとすると (ID が与えられます):
エラーが表示されます - タイプ bson.M の値はタイプ ノードに割り当てられません。
また、埋め込まれた Node ドキュメントを型情報なしで Go 構造体にアンマーシャリングする方法は、私には少し奇妙に感じます。問題を別の観点から見る必要があるかもしれません。
どんな提案でも大歓迎です。