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

MongoDBで配列サイズが1より大きいドキュメントをクエリしますか?


長さを使用して、配列サイズが1より大きいドキュメントをクエリできます。

db.yourCollectionName.find({$where:"this.yourArrayDocumentName.length > 1"}).pretty();

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

>db.arrayLengthGreaterThanOne.insertOne({"StudentName":"Larry","StudentTechnicalSubje
ct":["Java","C","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6d6c4c0c3d5054b766a76a")
}
>db.arrayLengthGreaterThanOne.insertOne({"StudentName":"Maxwell","StudentTechnicalSu
bject":["MongoDB"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6d6c660c3d5054b766a76b")
}
>db.arrayLengthGreaterThanOne.insertOne({"StudentName":"Maxwell","StudentTechnicalSu
bject":["MySQL","SQL Server","PL/SQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6d6c800c3d5054b766a76c")
}

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

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

出力は次のとおりです。

{
   "_id" : ObjectId("5c6d6c4c0c3d5054b766a76a"),
   "StudentName" : "Larry",
   "StudentTechnicalSubject" : [
      "Java",
      "C",
      "C++"
   ]
}
{
   "_id" : ObjectId("5c6d6c660c3d5054b766a76b"),
   "StudentName" : "Maxwell",
   "StudentTechnicalSubject" : [
      "MongoDB"
   ]
}
{
   "_id" : ObjectId("5c6d6c800c3d5054b766a76c"),
   "StudentName" : "Maxwell",
   "StudentTechnicalSubject" : [
      "MySQL",
      "SQL Server",
      "PL/SQL"
   ]
}

配列サイズが1より大きいドキュメントのクエリは次のとおりです。以下のクエリは、配列サイズが1より大きいすべてのドキュメントを提供します。

> db.arrayLengthGreaterThanOne.find({$where:"this.StudentTechnicalSubject.length > 1"}).pretty();

出力は次のとおりです。

{
   "_id" : ObjectId("5c6d6c4c0c3d5054b766a76a"),
   "StudentName" : "Larry",
   "StudentTechnicalSubject" : [
      "Java",
      "C",
      "C++"
   ]
}
{
   "_id" : ObjectId("5c6d6c800c3d5054b766a76c"),
   "StudentName" : "Maxwell",
   "StudentTechnicalSubject" : [
      "MySQL",
      "SQL Server",
      "PL/SQL"
   ]
}

  1. MongoDBに埋め込まれたドキュメントの配列をクエリし、別のドキュメントをプッシュしますか?

    このために、更新と一緒に$pushを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo573.insertOne( ...    { ...       '_id' :101, ...       'SearchInformation' : [ ...          { ...             'Site'

  2. 配列フィールドを含むドキュメントに一致するMongoDBクエリ

    配列フィールドを含むドキュメントを照合するには、$elemMatch演算子を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo592.insertOne( ...    { ...       "id":101, ...       "details" : [ ...          { "Name" : "Chris", "Value