定義
パラメーター
$fieldName: string- 個別の値を返すフィールド。
$filter: array|object- 個別の値を取得するドキュメントを指定するフィルター基準。
$options: 配列必要なオプションを指定する配列。
名前タイプ説明collation
array|object
照合順序を指定すると、大文字や小文字、アクセント記号など、string を比較するための言語独自のルールを指定できます。 照合を指定する場合、
localeフィールドは必須です。その他の照合フィールドはすべてオプションです。 フィールドの説明については、 「照合ドキュメント」 を参照してください。照合が指定されていないが、コレクションにデフォルトの照合がある場合、操作はコレクションに指定された照合を使用します。 コレクションにも操作にも照合が指定されていない場合、MongoDB では以前のバージョンで使用されていた単純なバイナリ比較によって string が比較されます。
comment
混合
データベースプロファイラ、 currentOp出力、およびログから操作を追跡するのに役立つ任意のコメントを指定できるようにします。
このオプションは MongoDB 4.4 以降で使用可能であり、古いサーバー バージョンで指定すると実行時に例外が発生します。
1.13バージョン の新機能。:
hint
string|オブジェクト
使用するインデックス。 インデックス名を string またはインデックス キー パターンをドキュメントとして指定します。 指定すると、クエリ システムはヒント指定したインデックスを使用するプランのみを考慮します。
1.21バージョン の新機能。:
maxTimeMS
integer
カーソルに対する情報処理操作の累積時間制限(ミリ秒単位)。 MongoDB は、次の割り込みポイントが最も近い時点で操作を中止します。
ReadConcern
操作に使用する読み取り保証。 デフォルトはコレクションの読み取り保証 (read concern) です。
トランザクションの一部である個々の操作に対して読み取り保証 (read concern)を指定することはできません。代わりに、トランザクションを開始するときに
readConcernオプションを設定します。readPreference
操作に使用する読み取り設定。 コレクションの読み込み設定(read preference)がデフォルトで設定されます。
セッション
操作に関連付けるクライアント セッション。
1.3バージョン の新機能。:
typeMap
配列
Return Values
個別の値の配列。
エラーと例外
MongoDB\Exception\UnexpectedValueException サーバーからのコマンド応答が不正な形式であった場合、。
MongoDB\Exception\UnsupportedExceptionオプションが使用され、選択したサーバーでサポートされていない場合(例: collation 、 readConcern 、 writeConcern )。
MongoDB\Exception\InvalidArgumentException は、パラメータまたはオプションの解析に関連するエラーの場合は です。
MongoDB$Driver\Exception\RuntimeException は、拡張レベルの他のエラーの場合(例:)。
動作
クエリ条件を評価する際、 MongoDB はBSON types の独自の比較ルールに従ってタイプと値を比較します。これは PHP の比較および型調整ルールとは異なります。特別な BSON type を照合する場合、BSONクラス は拡張機能(例:)。( ObjectId を一致させるためにMongoDB$ BSON$ObjectId を使用)
例
フィールドの個別の値を返す
次の例では、 testデータベース内のrestaurantsコレクション内のboroughフィールドの個別の値を識別します。
$collection = (new MongoDB\Client)->test->restaurants; $distinct = $collection->distinct('borough'); var_dump($distinct);
出力は次のようになります。
array(6) { [0]=> string(5) "Bronx" [1]=> string(8) "Brooklyn" [2]=> string(9) "Manhattan" [3]=> string(7) "Missing" [4]=> string(6) "Queens" [5]=> string(13) "Staten Island" }
フィルターを使用して個別の値を返す
次の例では、 boroughがQueensであるドキュメントのtestデータベース内のrestaurantsコレクション内のcuisineフィールドの個別の値を識別します。
$collection = (new MongoDB\Client)->test->restaurants; $distinct = $collection->distinct('cuisine', ['borough' => 'Queens']); var_dump($distinct);
出力は次のようになります。
array(75) { [0]=> string(6) "Afghan" [1]=> string(7) "African" [2]=> string(9) "American " [3]=> string(8) "Armenian" [4]=> string(5) "Asian" [5]=> string(10) "Australian" [6]=> string(15) "Bagels/Pretzels" [7]=> string(6) "Bakery" [8]=> string(11) "Bangladeshi" [9]=> string(8) "Barbecue" [10]=> string(55) "Bottled beverages, including water, sodas, juices, etc." [11]=> string(9) "Brazilian" [12]=> string(4) "Cafe" [13]=> string(16) "Café/Coffee/Tea" [14]=> string(5) "Cajun" [15]=> string(9) "Caribbean" [16]=> string(7) "Chicken" [17]=> string(7) "Chinese" [18]=> string(13) "Chinese/Cuban" [19]=> string(16) "Chinese/Japanese" [20]=> string(11) "Continental" [21]=> string(6) "Creole" [22]=> string(5) "Czech" [23]=> string(12) "Delicatessen" [24]=> string(6) "Donuts" [25]=> string(16) "Eastern European" [26]=> string(8) "Egyptian" [27]=> string(7) "English" [28]=> string(8) "Filipino" [29]=> string(6) "French" [30]=> string(17) "Fruits/Vegetables" [31]=> string(6) "German" [32]=> string(5) "Greek" [33]=> string(10) "Hamburgers" [34]=> string(16) "Hotdogs/Pretzels" [35]=> string(31) "Ice Cream, Gelato, Yogurt, Ices" [36]=> string(6) "Indian" [37]=> string(10) "Indonesian" [38]=> string(5) "Irish" [39]=> string(7) "Italian" [40]=> string(8) "Japanese" [41]=> string(13) "Jewish/Kosher" [42]=> string(30) "Juice, Smoothies, Fruit Salads" [43]=> string(6) "Korean" [44]=> string(64) "Latin (Cuban, Dominican, Puerto Rican, South & Central American)" [45]=> string(13) "Mediterranean" [46]=> string(7) "Mexican" [47]=> string(14) "Middle Eastern" [48]=> string(8) "Moroccan" [49]=> string(25) "Not Listed/Not Applicable" [50]=> string(18) "Nuts/Confectionary" [51]=> string(5) "Other" [52]=> string(9) "Pakistani" [53]=> string(16) "Pancakes/Waffles" [54]=> string(8) "Peruvian" [55]=> string(5) "Pizza" [56]=> string(13) "Pizza/Italian" [57]=> string(6) "Polish" [58]=> string(10) "Portuguese" [59]=> string(7) "Russian" [60]=> string(6) "Salads" [61]=> string(10) "Sandwiches" [62]=> string(30) "Sandwiches/Salads/Mixed Buffet" [63]=> string(7) "Seafood" [64]=> string(9) "Soul Food" [65]=> string(18) "Soups & Sandwiches" [66]=> string(12) "Southwestern" [67]=> string(7) "Spanish" [68]=> string(5) "Steak" [69]=> string(5) "Tapas" [70]=> string(7) "Tex-Mex" [71]=> string(4) "Thai" [72]=> string(7) "Turkish" [73]=> string(10) "Vegetarian" [74]=> string(29) "Vietnamese/Cambodian/Malaysia" }
その他の参照
- MongoDB マニュアルの個別のコマンド参照