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

MongoDBで配列要素をクエリしますか?


配列要素をクエリする場合は、MongoDBの方が適しています。配列要素のクエリに次の構文を使用しましょう-

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

上記の構文は、配列フィールドに「yourValue」という値を持つすべてのドキュメントを返します。

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

> db.queryArrayElementsDemo.insertOne({
   ... "StudentName":"John","StudentFavouriteSubject":["C","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c90c0354afe5c1d2279d694")
}
> db.queryArrayElementsDemo.insertOne({ "StudentName":"Carol","StudentFavouriteSubject":["C","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c90c0434afe5c1d2279d695")
}
> db.queryArrayElementsDemo.insertOne({ "StudentName":"David","StudentFavouriteSubject":["MongoDB","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c90c0584afe5c1d2279d696")
}

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

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

以下は出力です-

{
   "_id" : ObjectId("5c90c0354afe5c1d2279d694"),
   "StudentName" : "John",
   "StudentFavouriteSubject" : [
      "C",
      "Java"
   ]
}
{
   "_id" : ObjectId("5c90c0434afe5c1d2279d695"),
   "StudentName" : "Carol",
   "StudentFavouriteSubject" : [
      "C",
      "C++"
   ]
}
{
   "_id" : ObjectId("5c90c0584afe5c1d2279d696"),
   "StudentName" : "David",
   "StudentFavouriteSubject" : [
      "MongoDB",
      "Java"
   ]
}

MongoDBを使用した配列要素のクエリ-

> db.queryArrayElementsDemo.find({StudentFavouriteSubject:"Java"}).pretty();

以下は出力です-

{
   "_id" : ObjectId("5c90c0354afe5c1d2279d694"),
   "StudentName" : "John",
   "StudentFavouriteSubject" : [
      "C",
      "Java"
   ]
}
{
   "_id" : ObjectId("5c90c0584afe5c1d2279d696"),
   "StudentName" : "David",
   "StudentFavouriteSubject" : [
      "MongoDB",
      "Java"
   ]
}

上記のサンプル出力を見てください。上記のクエリは、値が「Java」のすべてのドキュメントを返します。


  1. 配列要素を使用してMongoDBで特定のドキュメントをフェッチします

    特定のドキュメントをフェッチするには、MongoDB find()でドット表記を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo672.insertOne({Brand:[{CategoryName:"Mobile","Name":"Oppo"}]}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea3ea9b04263e90dac9

  2. MongoDBを使用して、特定のネストされたドキュメントのオブジェクトの配列をクエリしますか?

    ネストされたドキュメントのオブジェクトの配列をクエリするには、find()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo763.insertOne( ...    { ...       _id:1, ...       CountryName:"US", ...       "studentInformation": [ ...          {