4

だからここに私の質問があります。_idsmongodbs オブジェクトの配列が格納されています。mgo と bson パッケージを使用して 1 つのクエリでそれらすべてを取得する正しい方法は何ですか?

したがって、配列がそのようなものである場合:ids:=["543d171c5b2c12420dd016","543d171c5b2dd016"]

クエリの作成方法 私はそれを試しましたが、それが間違っていることを知っています。

query := bson.M{"_id": bson.M{"$in": ids}}
c.Find(query).All()

前もって感謝します

4

2 に答える 2

16

ドキュメントが文字列 ID で保存されている場合、コードは正しく見えます。

ID は、16 進数でエンコードされたオブジェクト ID のように見えます。オブジェクト識別子がオブジェクト ID の場合、16 進文字列をオブジェクト ID に変換する必要があります。

oids := make([]bson.ObjectId, len(ids))
for i := range ids {
  oids[i] = bson.ObjectIdHex(ids[i])
}
query := bson.M{"_id": bson.M{"$in": oids}}
于 2014-10-17T16:01:19.223 に答える