如何基於 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 }

更新於: 2019 年 7 月 30 日

71 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.