如何基于在MongoDB中添加两个属性的值来搜索文档?

您可以为此使用聚合框架。在这里,我们将得到总和,然后将其匹配以搜索少于特定编号的文档。首先让我们创建一个包含文档的集合-

> 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

}

以下是基于在文档上添加两个属性的值来搜索文档的查询-

> db.searchDocumentsDemo.aggregate([

...   { $project: {totalValue: { $add: [ "$Value1", "$Value2" ] } } },

...   { $match: {totalValue: {$lt: 500 }} }

... ]);

这将产生以下输出-

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

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

以上是 如何基于在MongoDB中添加两个属性的值来搜索文档? 的全部内容, 来源链接: utcz.com/z/355806.html

回到顶部