-1

次のようなスキーマがあります。

{
  "_id" : ObjectId("4f6af5c7065f92581a000013"),
  ....
  "conversation" : [{
      "_id" : ObjectId("4f6af5c7065f92581a000013"),
      "msg" : "message1",
      "userID" : 1
    },{
      "_id" : ObjectId("4f6af5c7065f92581a000016"),
      "msg" : "message3",
      "userID" : 1
    },{
      "_id" : ObjectId("4f6af5c7065f92581a000023"),
      "msg" : "msg",
      "userID" : 1
    }]
}

キー msg の値に 'msg' が含まれる要素のリストを出力する必要があります。

db.dialogs.find({ "_id" : new ObjectId('4f6af5c7065f92581a000013'), "conversation.msg" : /msg/i })

ただし、オブジェクトに関するすべての情報を出力します。私が必要なのはただ

{
          "_id" : ObjectId("4f6af5c7065f92581a000023"),
          "msg" : "msg",
          "userID" : 1
        }
4

1 に答える 1

1

いいえ、サブ配列の要素を単独で選択することはできません。親ドキュメントの構造は保持されます (ただし、他の tnan 会話のフィールドから選択しないように選択することもできます (例で行ったように))。

于 2012-05-08T20:00:46.830 に答える