mongoDB フィールド値が存在するデータを取得する
mongoDBで、フィールド値が存在するデータを取得する手順を記述してます。「$exists」に「true」を指定することで取得できます。実際に実行した結果も記載してます。
環境
- OS CentOS Stream release 9
- MongoDB 6.0.2
手順
フィールド値が存在するデータを取得するには、「$exists:true」を使用します。
db.コレクション名.find( {フィールド名: {$exists:true}} )
実際に、以下のデータベース「hoge」にある「foo」というコレクション(テーブル)のドキュメント(レコード)を使用して動作を確認してみます。
> use hoge
> db.foo.find()
[
{
_id: ObjectId("6364ae7f06a29c57f191d1b7"),
name: 'itiro',
age: 10,
gender: 'm'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1b8"),
name: 'jiro',
age: 20,
gender: 'm'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1b9"),
name: 'saburo',
age: 30,
gender: 'm',
address: 'tokyo'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1ba"),
name: 'jiro',
age: 25,
gender: 'f'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1bb"),
name: 'jiro',
age: 30,
gender: 'x'
}
]
「address」というフィールドだけがあるデータを表示してみます。
> db.foo.find( {address: {$exists:true}} )
[
{
_id: ObjectId("6364ae7f06a29c57f191d1b9"),
name: 'saburo',
age: 30,
gender: 'm',
address: 'tokyo'
}
]
取得されていることが、確認できます。
falseを指定
「false」を指定すると存在しないデータだけが取得できます。
> db.foo.find( {address: {$exists:false}} )
[
{
_id: ObjectId("6364ae7f06a29c57f191d1b7"),
name: 'itiro',
age: 10,
gender: 'm'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1b8"),
name: 'jiro',
age: 20,
gender: 'm'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1ba"),
name: 'jiro',
age: 25,
gender: 'f'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1bb"),
name: 'jiro',
age: 30,
gender: 'x'
}
]
-
前の記事
kotlin コメントアウトを行う 2022.12.13
-
次の記事
MariaDB テーブルにある全パーティションを削除する 2022.12.13
コメントを書く