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

MongoDBで特定の値を含む配列を持つドキュメントを検索します


find()メソッドを使用して、特定の値を含む配列を持つドキュメントを検索できます。構文は次のとおりです。

db.yourCollectionName.find({"yourArrayFieldName":"yourValue"},.......N).pretty();

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

>db.findSpecificValue.insertOne({"StudentId":1,"StudentName":"Larry","FavouriteSubject":["C","C++","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6e8996140577d89182b8d0")
}
>db.findSpecificValue.insertOne({"StudentId":2,"StudentName":"Larry","FavouriteSubject":["MongoDB","MySQL","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6e89b1140577d89182b8d1")
}

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

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

出力は次のとおりです。

{
   "_id" : ObjectId("5c6e8996140577d89182b8d0"),
   "StudentId" : 1,
   "StudentName" : "Larry",
   "FavouriteSubject" : [
      "C",
      "C++",
      "Java"
   ]
}
{
   "_id" : ObjectId("5c6e89b1140577d89182b8d1"),
   "StudentId" : 2,
   "StudentName" : "Larry",
   "FavouriteSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server"
   ]
}

これは、特定の値を含む配列を持つドキュメントを検索するためのクエリです。つまり、FavouriteSubjectの「MongoDB」は次のとおりです。

> db.findSpecificValue.find({"FavouriteSubject":"MongoDB"}).pretty();

出力は次のとおりです。

{
   "_id" : ObjectId("5c6e89b1140577d89182b8d1"),
   "StudentId" : 2,
   "StudentName" : "Larry",
   "FavouriteSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server"
   ]
}

  1. 特定の文字列が含まれているMongoDBドキュメントを見つけますか?

    特定の文字列が含まれているドキュメントを見つけるには、find()とともに$regexを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo597.insertOne({"Name":"John Doe"});{    "acknowledged" : true, "insertedId" : ObjectId("5e947ae3f5f1e70e134e2690") } > db.demo597.insertOne({"N

  2. MongoDBで配列をクエリして、特定の値をフェッチします

    配列から特定の値をフェッチするには、$ projectとともにaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo761.insertOne( ...    { ...       "details": [ ...          { ...             "student": { ...     &nb