[MongoDB]find()と演算子


あらかじめ準備するfind()関数を練習する前に、次のデータベース、コレクション、およびドキュメントを作成します.
use test  //데이터베이스 생성

db.createCollection("testCollection")  //컬렉션 생성

db.testCollection.insert([
{"name": "alex", "age": 23, "sex": "m"},
{"name": "triss", "age": 21, "sex": "f"},
{"name": "morgan", "age": 24, "sex": "f"},
{"name": "ed", "age": 21, "sex": "m"},
{"name": "reina", "age": 23, "sex": "f"},
{"name": "george", "age": 22, "sex": "m"}
])  //도큐먼트 생성

デフォルトではfind()関数を使用しますfind()関数と演算子を使用する様々な方法を見てみましょう.
まず、セット内のすべてのエンティティを決定する方法です.
db.컬렉션명.find()
db.컬렉션명.find({ })

特定のフィールド値を持つドキュメントを検索する方法は、次のとおりです.ここで性別が男性のアクセサリーを探してみます
db.컬렉션명.find({필드: 필드값})

非常にユニークな機能もありますfind()関数の後に.pretty()を付けて、表示しやすいように出力します.
find()関数とクエリーの使用find()関数の基本タイプは次のとおりです.
db.컬렉션명.find(쿼리, projection)
さっきは쿼리を省略しました쿼리を追加すると、条件フィールドのみでは見つけにくい条件を検索できます.projectionも闘士と呼ばれていますが、これも最後に教えてあげます.
では、find()で使用可能なクエリーを見てみましょう.
クエリーの比較
最初に紹介する友達は비교 쿼리です.
db.컬렉션명.find({필드명: {쿼리: 값}})

次のクエリの結果を示します.
$sq
$gt
$ne
$in
論理クエリー
次は논리 쿼리です.条件とクエリーに基づいた結果を返します.条件は2つ以上ある場合があります.
db.컬렉션명.find({쿼리: [{조건1}, {조건2}, ...]})

$or
要素クエリー
検索機能に比べて、요소 쿼리はクエリーの検索に役立ちます.
({필드: {쿼리: 값}})

/*
  쿼리 값은 $exists면 true/false가 오고
  $type이면 타입이 옵니다.
*/

評価クエリー평가 쿼리は、より具体的な検索オプションをサポートします.使用するものは多くないようですが、クエリーごとに使い方が少し異なります.詳細は、リンクを参照してください.
({필드: {쿼리: }})

配列クエリー
배열 쿼리는 도큐먼트 필드의 값이 배열일 때 이용가능한 쿼리입니다.

({필드: {쿼리: }})

/*
  $all은 쿼리 뒤에 내용이 [대괄호]에 담기고,
  $elemMatch와 $size는 {중괄호}에 담깁니다.
*/

クエリーの投影
検索と比較して、투사 쿼리は検索後の後処理の計算を担当する.通常、結果からn個の結果を取得する際に用いられる.
find({쿼리}, {투사})
{필드.$: n}  //n은 숫자
{필드: {$elemMatch: {속성: 값}}}
{필드: {$meta: "메타 키워드"}}
{필드: {$slice: n}}
リファレンス
  • モンゴディビ公式ドキュメント-クエリーと演算子