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

MongoDBに2つのプロパティを追加することの価値に基づいてドキュメントを検索するにはどうすればよいですか?


これには集約フレームワークを使用できます。ここでは、合計を取得し、それを照合して、特定の数より少ないドキュメントを検索します。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.searchDocumentsDemo.insertOne({"Value1":100,"Value2":560});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3fe1eedc6604c74817ce9")
}
> db.searchDocumentsDemo.insertOne({"Value1":300,"Value2":150});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3fe29edc6604c74817cea")
}
> db.searchDocumentsDemo.insertOne({"Value1":400,"Value2":200});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3fe30edc6604c74817ceb")
}
> db.searchDocumentsDemo.insertOne({"Value1":190,"Value2":210});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3fe45edc6604c74817cec")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

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

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

{
   "_id" : ObjectId("5cd3fe1eedc6604c74817ce9"),
   "Value1" : 100,
   "Value2" : 560
}
{
   "_id" : ObjectId("5cd3fe29edc6604c74817cea"),
   "Value1" : 300,
   "Value2" : 150
}
{
   "_id" : ObjectId("5cd3fe30edc6604c74817ceb"),
   "Value1" : 400,
   "Value2" : 200
}
{
   "_id" : ObjectId("5cd3fe45edc6604c74817cec"),
   "Value1" : 190,
   "Value2" : 210
}

以下は、ドキュメントに2つのプロパティを追加する値に基づいてドキュメントを検索するためのクエリです-

> db.searchDocumentsDemo.aggregate([
...   { $project: {totalValue: { $add: [ "$Value1", "$Value2" ] } } },
...   { $match: {totalValue: {$lt: 500 }} }
... ]);

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

{ "_id" : ObjectId("5cd3fe29edc6604c74817cea"), "totalValue" : 450 }
{ "_id" : ObjectId("5cd3fe45edc6604c74817cec"), "totalValue" : 400 }

  1. MongoDBでforループを使用して値をプッシュする方法は?

    値をプッシュするには、forループとともにsave()を使用します。ドキュメントを使用してコレクションを作成しましょう- > for(var v=1; v<7; v++) { ... db.demo739.save({Name:"Chris",SubjectName:"MongoDB"}); ... } WriteResult({ "nInserted" : 1 }) find()メソッドを使用してコレクションからすべてのドキュメントを表示する- > db.demo739.find(); これにより、次の出力が生

  2. MySQLで正確な文字列値を検索するにはどうすればよいですか?

    正確な文字列値を検索するには、COLLATEの概念を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1620     -> (     -> Subject varchar(20)     -> ); Query OK, 0 rows affected (0.42 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1620 values('mysql'