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

MongoDB:$ninと$inが$elemMatchで連携して機能せず、サブジェクトが「MongoDB」であるが「Java」ではないドキュメントをフェッチする


このような種類のフェッチには、$ninと$inのみを使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo140.insertOne({"Id":101,"Subjects":["MongoDB","MySQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e31c149fdf09dd6d08539a9")
}
> db.demo140.insertOne({"Id":102,"Subjects":["MongoDB","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e31c14cfdf09dd6d08539aa")
}
> db.demo140.insertOne({"Id":103,"Subjects":["MongoDB","PL/SQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e31c157fdf09dd6d08539ab")
}
> db.demo140.insertOne({"Id":104,"Subjects":["MongoDB","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e31c163fdf09dd6d08539ac")
}
> db.demo140.insertOne({"Id":105,"Subjects":["C","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e31c16ffdf09dd6d08539ad")
}

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

> db.demo140.find();

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

{ "_id" : ObjectId("5e31c149fdf09dd6d08539a9"), "Id" : 101, "Subjects" : [ "MongoDB", "MySQL" ] }
{ "_id" : ObjectId("5e31c14cfdf09dd6d08539aa"), "Id" : 102, "Subjects" : [ "MongoDB", "Java" ] }
{ "_id" : ObjectId("5e31c157fdf09dd6d08539ab"), "Id" : 103, "Subjects" : [ "MongoDB", "PL/SQL" ] }
{ "_id" : ObjectId("5e31c163fdf09dd6d08539ac"), "Id" : 104, "Subjects" : [ "MongoDB", "SQL Server" ] }
{ "_id" : ObjectId("5e31c16ffdf09dd6d08539ad"), "Id" : 105, "Subjects" : [ "C", "C++" ] }

これは、サブジェクトが「MongoDB」で「Java」ではないドキュメントをフェッチするためのクエリです-

> db.demo140.find({$and:[{Subjects:{$in:['MongoDB']}}, {Subjects:{$nin:['Java']}}]}).toArray();

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

[
   {
      "_id" : ObjectId("5e31c149fdf09dd6d08539a9"),
      "Id" : 101,
      "Subjects" : [
         "MongoDB",
         "MySQL"
      ]
   },
   {
      "_id" : ObjectId("5e31c157fdf09dd6d08539ab"),
      "Id" : 103,
      "Subjects" : [
         "MongoDB",
         "PL/SQL"
      ]
   },
   {
      "_id" : ObjectId("5e31c163fdf09dd6d08539ac"),
      "Id" : 104,
      "Subjects" : [
         "MongoDB",
         "SQL Server"
      ]
   }
]

  1. MongoDBで特定の複数のドキュメントを取得する

    MongoDBで特定の複数のドキュメントをフェッチするには、$inを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo593.insertOne({id:1,"Name":"Chris"});{    "acknowledged" : true, "insertedId" : ObjectId("5e93177dfd2d90c177b5bcd9") } > db.demo593.insertOne({id:2,"Name

  2. 特定の数より大きいフィールド値を持つMongoDBドキュメントを照合し、それらをフェッチしますか?

    一致させるには、MongoDBで$matchを使用します。特定の数値より大きい値の場合は、$gtを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo730.insertOne({"Name" : "Chris", "Marks" : 33 }); {    "acknowledged" : true,    "insertedId" : ObjectId("5eac54cd56e85a39df5f6339&