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

オブジェクトの配列内で複数の一致を見つけるためのMongoDBクエリ?


これには、$andを$regexと一緒に使用します。 $ andは、1つ以上の式の配列に対して論理積演算を実行し、配列内のすべての式を満たすドキュメントを選択します。

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

> db.demo525.insertOne({"details":[{Name:"Chris","CountryName":"US"}]});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e8ae5ef437efc8605595b66")
}
> db.demo525.insertOne({"details":[{Name:"Bob","CountryName":"UK"}]});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e8ae5f8437efc8605595b67")
}
> db.demo525.insertOne({"details":[{Name:"chris","CountryName":"us"}]});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e8ae602437efc8605595b68")
}
> db.demo525.insertOne({"details":[{Name:"Mike","CountryName":"UK"}]});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e8ae60b437efc8605595b69")
}

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo525.find();

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

{ "_id" : ObjectId("5e8ae5ef437efc8605595b66"), "details" : [ { "Name" : "Chris", "CountryName" : "US" } ] }
{ "_id" : ObjectId("5e8ae5f8437efc8605595b67"), "details" : [ { "Name" : "Bob", "CountryName": "UK" } ] }
{ "_id" : ObjectId("5e8ae602437efc8605595b68"), "details" : [ { "Name" : "chris","CountryName" : "us" } ] }
{ "_id" : ObjectId("5e8ae60b437efc8605595b69"), "details" : [ { "Name" : "Mike","CountryName" : "UK" } ] }
>

以下は、オブジェクトの配列内で複数の一致を見つけるためのクエリです-

> db.demo525.find(
... {"$and": [
...    { "details" : { "$elemMatch" :{ "Name": {$regex: new RegExp('^' + 'Chris', 'i')}}} },
...    { "details" : { "$elemMatch" :{ "CountryName": {$regex: new RegExp('^' + 'us', 'i')}}}
}
... ]}
... )

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

{ "_id" : ObjectId("5e8ae5ef437efc8605595b66"), "details" : [ { "Name" : "Chris", "CountryName" : "US" } ] }
{ "_id" : ObjectId("5e8ae602437efc8605595b68"), "details" : [ { "Name" : "chris", "CountryName" : "us" } ] }

  1. MongoDBデータベース内のオブジェクトの配列で_idで検索しますか?

    オブジェクトの配列で_idで検索するには、集計を使用し、find()の使用を避けます。まず、ドキュメントを使用してコレクションを作成しましょう- > db.demo414.insertOne( ...    { ...       "_id": "110", ...       "details":[ ...          { ...         &nb

  2. MongoDBのサブドキュメントの配列をクエリする

    サブドキュメントの配列をクエリするには、MongoDBで$unwindを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo499.insertOne({ ... "details": ...    [ ...       { ...          Name :"MIT", ...          Rank: 1, ...