問題タブ [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.

0 投票する
2 に答える
12026 参照

go - mgo を使用した構造化されていない MongoDB コレクション

私はGoが初めてです。mGo の例で見たことから、コレクションをクエリしてから読み取るには、構造体に返されるデータを事前に定義する必要があります。

PHP では、ドキュメントは配列に割り当てられました。1 つのレコードが完全に異なるキーのセット (名前または電話を含まず、電子メールを含む場合があります) を持つ可能性があり、定義済みのクラス / 構造体 / 変数を設定せずに直接アクセスできるため、これは完璧でした。

Go / mGoで同じことを行う方法はありますか?

0 投票する
1 に答える
1911 参照

mongodb - オブジェクトを保存しないでください

mgoを使用すると、意味のあるデータを保存できません。のみ_idが保存されます

Mongo での結果は _id フィールドだけで、"Joe" の兆候はありません。


Arch Linux、MongoDB 2.4.6 で go 1.1.2 を使用しています。

0 投票する
1 に答える
1490 参照

mongodb - mgo time.Time またはブールチェック

false (または定義されていない) の日付フィールドを含む mongo ドキュメントがあり、フィールドが使用可能か、false か、日付 (time.Time) であるかを確認する方法が見つからないようです。 golang/mgo :S

0 投票する
1 に答える
2946 参照

mongodb - 型が混在する配列を表現する方法

MongoDBのコマンドを使用して集計パイプライン クエリを作成して$substrいますが、Go で必要な配列を mgo ドライバーで表す方法がわかりません。これにはさまざまな種類の値 (string、int) が含まれているためです。

以下は JavaScript でのクエリです。

これがやろうとしているのはdt、開始インデックス 0 と終了インデックス 6 で (集計の前の段階から) の部分文字列を取得することです。

Goで私は得ました:

しかし、これ["$dt",0,6]は正しい表現ではなく、私が試みたすべてが失敗したようです。

0 投票する
2 に答える
3190 参照

go - Golang のエラー

mgoは QueryError または ErrNotFound とは異なるエラーを返すことができますか? データベース接続エラーはどうなりますか?

ErrNotFound とは異なるエラーでパニックになり、ステータス 500 のかなりの応答のようなもので http ハンドラー スタックの一番上に回復するのは良い習慣ですか?

0 投票する
1 に答える
353 参照

interface - 依存関係を簡素化する Golang インターフェイス?

うーん、私はインターフェイスに頭を悩ませています。

だから私はmongodbのものを処理するためにGoパッケージを使用していますが、そのパッケージをすべてのモデルにインポートしたくありません。サブパッケージ (モデルなど) の多くを標準ライブラリだけに保持したいと考えています。だから私はいくつかのインターフェースを次のようにレイアウトすると思った:

問題は、次のような関数を使用するときです。

これは、mgo.Database を渡すことによって、インターフェイスを使用しているパッケージに含まれています。

コンパイラ エラーが発生します。

controllers/handlers.go:35: ctx.Database (タイプ *mgo.Database) を関数引数のタイプ dota.database として使用することはできません: *mgo.Database は dota.database を実装していません (C メソッドの間違ったタイプ) have C(string) ) *mgo.Collection が欲しい C(文字列) dota.collection

この概念について何が欠けていますか?

0 投票する
1 に答える
5505 参照

unit-testing - 単体テストの golang ハンドラー

これは、mongodb からドキュメントを取得するために作成したハンドラーです。
ドキュメントが見つかった場合は、それに応じてテンプレートを読み込んでレンダリングします。失敗すると、404 にリダイレクトされます。

これを手動で試してみると、すべてうまくいきます。

ただし、これを単体テストに合格させることはできないようです。対応するテスト ファイルでは、これは my を読み込もうとするテスト コードEventNextHandlerです。

テストは次の行で失敗しますEventNextHandler(response, request)

私のエラー メッセージではerr := db.Find(&Event{}, search).Sort(sort).One(&result)、ハンドラー コードの行を参照しています。

ここに完全なエラーメッセージ:-

私のテストを書く正しい方法は何ですか? mongodb から何も取得されない状況を考慮し、アサーションを適用してそれを検証し、検証済みのテストを作成します。