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

複数の基準を持つMongoDB配列で値を見つけますか?


たとえば、複数の基準を持つ配列内の値を見つけるには、$egtおよび$ltとともに$elemMatchを使用できます。構文は次のとおりです-

db.yourCollectionName.find({yourFieldName:{$elemMatch:{$gt:yourNegativeValue,$lt:yourPo sitiveValue}}}).pretty();

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

> db.findValueInArrayWithMultipleCriteriaDemo.insertOne({"StudentName":"Larry","StudentMarks":[-150,150]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c77daf6fc4e719b197a12f5")
}
> db.findValueInArrayWithMultipleCriteriaDemo.insertOne({"StudentName":"Mike","StudentMarks":[19]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c77db09fc4e719b197a12f6")
}

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

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

以下は出力です-

{
   "_id" : ObjectId("5c77daf6fc4e719b197a12f5"),
   "StudentName" : "Larry",
   "StudentMarks" : [
      -150,
      150
   ]
}
{
   "_id" : ObjectId("5c77db09fc4e719b197a12f6"),
   "StudentName" : "Mike",
   "StudentMarks" : [
      19
   ]
}

これは、複数の基準を持つ配列内の値を見つけるためのクエリです。たとえば、ここでは-20より大きく20未満のマークを検討しています-

> db.findValueInArrayWithMultipleCriteriaDemo.find({StudentMarks:{$elemMatch:{$gt:-20,$lt:20}}}).pretty();

以下は出力です-

{
   "_id" : ObjectId("5c77db09fc4e719b197a12f6"),
   "StudentName" : "Mike",
   "StudentMarks" : [
      19
   ]
}

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

    これには、$andを$regexと一緒に使用します。 $ andは、1つ以上の式の配列に対して論理積演算を実行し、配列内のすべての式を満たすドキュメントを選択します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo525.insertOne({"details":[{Name:"Chris","CountryName":"US"}]});{    "acknowledged" : true,    "insert

  2. MongoDBで単一の配列値を文字列に置き換えますか?

    置き換えるには、$ setおよびpositional($)演算子を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo564.insertOne({"StudentName":["Chris","David","Mike","Sam"]});{    "acknowledged" : true, "insertedId" : ObjectId("5e90880a39cfeaaf0b97b5