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

collection.find()は常にMongoDBですべてのフィールドを返しますか?


次の構文を使用して、collection.find()から特定のフィールドを返すことができます。

ケース1 −構文は次のとおりです−

db.yourCollectionName.find({},{"yourFieldName":1}).pretty();

上記のフィールド名が1に設定されている場合は、そのフィールドのみが返されることを意味します。 0に設定すると、0に設定されているフィールドを除くすべてのフィールドが返されます。

ケース2 −構文は次のとおりです−

db.yourCollectionName.find({},{"yourFieldName":0}).pretty();

上記の構文を理解するために、ドキュメントを使用してコレクションを作成しましょう。ドキュメントを使用してコレクションを作成するためのクエリは次のとおりです-

> db.returnFieldInFindDemo.insertOne({"StudentName":"John","StudentAge":23,"TechnicalSubject":["MongoDB","MySQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ebfe72f684a30fbdfd566")
}
> db.returnFieldInFindDemo.insertOne({"StudentName":"Mike","StudentAge":24,"TechnicalSubject":["Java","Python"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ebffd2f684a30fbdfd567")
}
> db.returnFieldInFindDemo.insertOne({"StudentName":"Sam","StudentAge":22,"TechnicalSubject":["C","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ec00f2f684a30fbdfd568")
}
> db.returnFieldInFindDemo.insertOne({"StudentName":"Carol","StudentAge":20,"TechnicalSubject":["DataStructure","Algorithm"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ec0292f684a30fbdfd569")
}

find()メソッドを使用して、コレクションのすべてのドキュメントを表示します。クエリは次のとおりです-

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

以下は出力です-

{
   "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"),
   "StudentName" : "John",
   "StudentAge" : 23,
   "TechnicalSubject" : [
      "MongoDB",
      "MySQL"
   ]
}
{
   "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"),
   "StudentName" : "Mike",
   "StudentAge" : 24,
   "TechnicalSubject" : [
      "Java",
      "Python"
   ]
}
{
   "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"),
   "StudentName" : "Sam",
   "StudentAge" : 22,
   "TechnicalSubject" : [
      "C",
      "C++"
   ]
}
{
   "_id" : ObjectId("5c8ec0292f684a30fbdfd569"),
   "StudentName" : "Carol",
   "StudentAge" : 20,
   "TechnicalSubject" : [
      "DataStructure",
      "Algorithm"
   ]
}

ケース1 −特定のフィールドを返すためのクエリは次のとおりです。

クエリは次のとおりです-

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

出力:

{
   "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"),
   "StudentName" : "John",
   "StudentAge" : 23,
   "TechnicalSubject" : [
      "MongoDB",
      "MySQL"
   ]
}
{
   "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"),
   "StudentName" : "Mike",
   "StudentAge" : 24,
   "TechnicalSubject" : [
      "Java",
      "Python"
   ]
}
{
   "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"),
   "StudentName" : "Sam",
   "StudentAge" : 22,
   "TechnicalSubject" : [
      "C",
      "C++"
   ]
}
{
   "_id" : ObjectId("5c8ec0292f684a30fbdfd569"),
   "StudentName" : "Carol",
   "StudentAge" : 20,
   "TechnicalSubject" : [
      "DataStructure",
      "Algorithm"
   ]
}

上記のサンプル出力を見てください。フィールド「TechnicalSubject」を1に初期化しました。これは、すべてのドキュメントからフィールド「TechnicalSubject」のみが返されることを意味します。

ケース2 − 2番目のケースでは、フィールド「TechnicalSubject」を0に設定すると、「TechnicalSubject」を除くすべてのフィールドが取得されます。

クエリは次のとおりです-

> db.retunFieldInFindDemo.find({},{"TechnicalSubject":0}).pretty();

出力は次のとおりです。

{
   "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"),
   "StudentName" : "John",
   "StudentAge" : 23
}
{
   "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"),
   "StudentName" : "Mike",
   "StudentAge" : 24
}
{
   "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"),
   "StudentName" : "Sam",
   "StudentAge" : 22
}
{
   "_id" : ObjectId("5c8ec0292f684a30fbdfd569"),
   "StudentName" : "Carol",
   "StudentAge" : 20
}

ケース3 −ご存知のように、find()のみを使用すると、すべてのフィールドが返されます。

クエリは次のとおりです-

> db.retunFieldInFindDemo.find();

出力は次のとおりです。

{ "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"), "StudentName" : "John", "StudentAge" : 23, "TechnicalSubject" : [ "MongoDB", "MySQL" ] }
{ "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"), "StudentName" : "Mike", "StudentAge" : 24, "TechnicalSubject" : [ "Java", "Python" ] }
{ "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"), "StudentName" : "Sam", "StudentAge" : 22, "TechnicalSubject" : [ "C", "C++" ] }
{ "_id" : ObjectId("5c8ec0292f684a30fbdfd569"), "StudentName" : "Carol", "StudentAge" : 20, "TechnicalSubject" : [ "DataStructure", "Algorithm" ] }

  1. find()の一部のフィールドを除外するMongoDBコレクションクエリ?

    以下の構文のように、含めたくないフィールドを0に設定します。ここでは、フィールド「yourFieldName1」と「yourFieldName2」を0-として設定しました。 db.yourCollectionName.find(yourQuery, {yourFieldName1:0,yourFieldName2:0}); 上記の構文を理解するために、ドキュメントを使用してコレクションを作成しましょう- > db.demo567.insertOne({"Name":"Chris",Age:21});{    "ack

  2. Aggregationを使用して、MongoDBのすべての値を照合します

    MongoDBのすべての値を一致させるには、Aggregationで$andとともに$matchを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo574.insertOne( ...    { ...       "details1": { ...          "details2": { ...             "dueDate&q