0

ユーザーがMongoDBに渡したいクエリパラメーターを渡すAPIがあります。API はリクエスト パラメータから文字列を取得し、Mongo 検索クエリに直接渡します。クエリ文字列には、固定されたキーのセットはありません。次の構造のいずれかを持つことができます -

{"name": "foo"}
{"name": "foo", "source": "bar"}
{"source": "oof", "place": "rab"}
...

この文字列を解析して、このように直接使用できるようにするにはどうすればよいですか -

collection.Find(MyQuery).All(&m)
4

1 に答える 1

2

単純json.Unmarshalに json で使用して変換し、通常どおりbson.M呼び出します。:Find

q := bson.M{}
if err := json.Unmarshal([]byte(json_str), &q); err != nil {
    panic(err)
}
collection.Find(q).All(&m)

ただし、これは API からのものであるため、 に渡す前にクリーンアップを行う必要がありqますFind

于 2014-07-25T13:14:45.130 に答える