私はRoomオブジェクトの以下の構造を持っています。与えられたフィールドでネストされたオブジェクトの配列を検索します。
メッセージは、私は部屋のコレクション内のメッセージによって検索クエリを実行する次のような構造type Message struct {
Id bson.ObjectId `json:"id" bson:"_id,omitempty"`
Text string `json:"text" bson:"text"`
Author Author `json:"author" bson:"author"`
CreatedOn time.Time `json:"createdon" bson:"created_on"`
Reply []Message `json:"reply" bson:"reply,omitempty"`}
を持っているオブジェクトのネストされた配列である
type Room struct {
Id bson.ObjectId `json:"id" bson:"_id,omitempty"`
Title string `json:"title" bson:"title"`
Description string `json:"description" bson:"description,omitempty"`
Type string `json:"type" bson:"type,omitempty"`
AdminId bson.ObjectId `json:"admin_id" bson:"admin_id"`
CreatedOn time.Time `json:"created_on" bson:"created_on"`
Messages []Message `json:"messages" bson:"messages,omitempty"`}
。私は"$in"
を使ってみましたが、私は助けませんでした。
また、値を一致させて要素を検索する必要があります。私はbsonの正規表現を使ってこれを行うことができます。
&bson.RegEx{Pattern: textToFind, Options: "i"}
は総括私は部屋ドキュメント内のネストされたオブジェクトにText
フィールドでメッセージを検索する必要があります。
P.S.間違いの可能性があり申し訳ありませんが、英語は母国語ではありません。
UPDATE
基本的に、私はいくつかの部分文字列を含んで与えられた部屋内のすべてのメッセージを見つけたいです。たとえば、ルーム内のすべてのメッセージ(チャット)の 'A'(一部のテキスト部分文字列を含む)を検索します。
あなたは 'collection.Find(bson.M { "messages.text":&bson.RegEx {パターン:textToFind、オプション: "I"}})のような何かを試すことができます' – Veeram
@Veeram私が試してみましたそれは動作しません。 –