MongoDB での文字列長のクエリ
場合によっては、文字列の長さなどの例外的なプロパティを使用して特定のドキュメントを検索する必要があります。 この記事では、MongoDB で文字列の長さを使用して特定のドキュメントを検索する方法を説明し、トピックに関する例を見て理解しやすくします。
文字列の長さに基づいてコレクション内の特定のドキュメントを検索する
コレクションから特定のドキュメントを見つけるには、find()
という非常に一般的な MongoDB の組み込みメソッドを使用します。 ただし、文字列の長さに基づいてドキュメントを見つけたい場合は、いくつかの例外的な基準を提供する必要があります。
次の例では、文字列の長さに基づいて特定のドキュメントを見つける 2つの方法を紹介します。
以下の例では、文字列の長さに基づいてドキュメントを見つける方法を示します。
しかし、最初に、私たちのコレクションで利用可能なドキュメントを確認しましょう。 この目的のために、以下のコマンドを使用します。
db.mydata.find()
上記のコマンドは、mydata
コレクション内のすべてのドキュメントを表示します。
{ _id: ObjectId("63713371117701ff3d627b56"),
Name: 'Alen',
Email: 'abc@gmail.com',
Year: 2018 }
{ _id: ObjectId("63713371117701ff3d627b57"),
Name: 'Max',
Email: 'max@gmail.com',
Year: 2017 }
{ _id: ObjectId("63713371117701ff3d627b58"),
Name: 'Ethen',
Email: 'ethen@gmail.com',
Year: 2019 }
{ _id: ObjectId("63713371117701ff3d627b59"),
Name: 'Alex',
Email: 'alex@gmail.com',
Year: 2020 }
上記は、私たちのコレクションで利用可能なドキュメントです。 次のステップに進みましょう。
次に、文字列の長さに基づいてドキュメントを検索するために使用できるメソッドを見てみましょう。 この目的のために、Name
フィールドの長さを取得します。
$where
キーワードを使用する
この目的のために、キーワード $where
を使用できます。 コマンドは次のようになります。
db.mydata.find({ $where: 'this.Name.length > 4' })
集計を使用する
集約を使用する場合は、次のコマンドを実行できます。
db.mydata.find({
Name: { $exists: true },
$expr: { $gt: [{ $strLenCP: '$Name' }, 4] } })
上記のコマンドで、キーワード $gt
はより大きい
を意味します。 MongoDB コンソールで両方のコマンドを実行すると、次のように同じ出力が得られます。
{ _id: ObjectId("63713371117701ff3d627b58"),
Name: 'Ethen',
Email: 'ethen@gmail.com',
Year: 2019 }
この記事に示されているコマンドは MongoDB データベース用であり、コマンドは MongoDB コンソールで実行する必要があることに注意してください。
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn