0

私はmongoDBを次のように設定しています:

fieldName: {
  "1": {
      client: "name-here",
      subfield: "more-junk-here"
   },
   "2": {
      client: "another-client-name-here",
      subfield: "more-data"
   },
   "3": {
      client: "client-num-3",
      subfield: "i-like-turkey-sandwiches"
   }
}

位置3にあることを知らずに、ドキュメント全体を検索せずに、「i-like-turkey-sandwiches」をクエリするにはどうすればよいですか。私はこれを書き始めましたが、検索の方法に完全に困惑しています...

$cursor = $collection->findOne(array('fieldName' => 'i-like-turkey-sandwiches));
4

1 に答える 1

1

(編集: fieldName コンテンツがサブドキュメントの配列であり、キーとして「1」/2/3、値としてサブドキュメントを持つドキュメントではない場合にのみ、私の答えは有効です)

でクエリすると

$cursor = $collection->findOne(
              array('fieldName.subfield' => 'i-like-turkey-sandwiches'));

この値を持つ fieldName フィールド内にサブフィールドがあるすべてのドキュメントが返されます。

于 2012-10-17T13:41:05.510 に答える