MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBを使用して、フィールドの値に関係なく、フィールドを持つすべてのドキュメントを検索するにはどうすればよいですか?


MongoDBを使用して、フィールドの値に関係なく、フィールドを持つすべてのドキュメントを検索するには、$exists演算子を使用します。構文は次のとおりです

db.yourCollectionName.find({yourFieldName:{$exists:true}});

ドキュメントを使用してコレクションを作成しましょう

>db.findAllDocumentWhichHaveFieldDemo.insertOne({"StudentName":"John","StudentAge":null});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9d1d60a629b87623db1b22")
}
>db.findAllDocumentWhichHaveFieldDemo.insertOne({"StudentName":"Larry","StudentAge":null});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9d1d70a629b87623db1b23")
}
>db.findAllDocumentWhichHaveFieldDemo.insertOne({"StudentName":"Chris","StudentAge":""});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9d1d7ba629b87623db1b24")
}
>db.findAllDocumentWhichHaveFieldDemo.insertOne({"StudentName":"Robert","StudentAge":""});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9d1d81a629b87623db1b25")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです

> db.findAllDocumentWhichHaveFieldDemo.find().pretty();

これにより、次の出力が生成されます

{
   "_id" : ObjectId("5c9d1d60a629b87623db1b22"),
   "StudentName" : "John",
   "StudentAge" : null
}
{
   "_id" : ObjectId("5c9d1d70a629b87623db1b23"),
   "StudentName" : "Larry",
   "StudentAge" : null
}
{
   "_id" : ObjectId("5c9d1d7ba629b87623db1b24"),
   "StudentName" : "Chris",
   "StudentAge" : ""
}
{
   "_id" : ObjectId("5c9d1d81a629b87623db1b25"),
   "StudentName" : "Robert",
   "StudentAge" : ""
}

以下は、MongoDBを使用して、フィールドの値に関係なく、フィールドを持つすべてのドキュメントを検索するためのクエリです。

> db.findAllDocumentWhichHaveFieldDemo.find({StudentAge:{$exists:true}});

これにより、次の出力が生成されます

{ "_id" : ObjectId("5c9d1d60a629b87623db1b22"), "StudentName" : "John", "StudentAge" : null }
{ "_id" : ObjectId("5c9d1d70a629b87623db1b23"), "StudentName" : "Larry", "StudentAge" : null }
{ "_id" : ObjectId("5c9d1d7ba629b87623db1b24"), "StudentName" : "Chris", "StudentAge" : "" }
{ "_id" : ObjectId("5c9d1d81a629b87623db1b25"), "StudentName" : "Robert", "StudentAge" : "" }

結果に「StudentName」フィールドを含めたくない場合のクエリは次のとおりです

>db.findAllDocumentWhichHaveFieldDemo.find({},{StudentName:0},{StudentAge:{$exists:true}});

これにより、次の出力が生成されます

{ "_id" : ObjectId("5c9d1d60a629b87623db1b22"), "StudentAge" : null }
{ "_id" : ObjectId("5c9d1d70a629b87623db1b23"), "StudentAge" : null }
{ "_id" : ObjectId("5c9d1d7ba629b87623db1b24"), "StudentAge" : "" }
{ "_id" : ObjectId("5c9d1d81a629b87623db1b25"), "StudentAge" : "" }

  1. MongoDBコレクション内のすべてのドキュメントに新しいフィールドを追加する方法

    新しいフィールドを追加するには、MongoDBで$addFieldsを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo712.insertOne({"Name":"John"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea85f675d33e20ed1097b82") } > db.demo712.insertOne({"

  2. 特定のフィールドの値に基づいて配列内のドキュメントをカウントするにはどうすればよいですか?

    このような一致とカウントには、MongoDBで$matchを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo726.insertOne( ...    { ...       id:101, ...       "details": [ ...          { ...             Name:"Chris" .