MongoDB 遞增巢狀陣列中值?
你可以為此使用位置運算子 $。為了理解上述概念,讓我們建立一個包含文件的集合。建立包含文件的集合的查詢如下所示 -
> db.incrementValueInNestedArrayDemo.insertOne(
... {"UniqueId":1,
... "StudentDetails":
... [
... {
... "StudentId":101,
... "StudentMarks":97
... },
... {
... "StudentId":103,
... "StudentMarks":99
... },
... {
... "StudentId":105,
... "StudentMarks":69
... },
... {
... "StudentId":107,
... "StudentMarks":59
... }
... ]
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5c77dd71fc4e719b197a12f7")
}在集合中使用 find() 方法顯示所有文件。查詢如下 -
> db.incrementValueInNestedArrayDemo.find().pretty();
以下是輸出 -
{
"_id" : ObjectId("5c77dd71fc4e719b197a12f7"),
"UniqueId" : 1,
"StudentDetails" : [
{
"StudentId" : 101,
"StudentMarks" : 97
},
{
"StudentId" : 103,
"StudentMarks" : 99
},
{
"StudentId" : 105,
"StudentMarks" : 92
},
{
"StudentId" : 107,
"StudentMarks" : 59
}
]
}以下是巢狀陣列中遞增值查詢 -
> db.incrementValueInNestedArrayDemo.update({UniqueId:1,"StudentDetails.StudentId":107},
{$inc:{"StudentDetails.$.StudentMarks":1}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })讓我們檢查巢狀陣列值在 StudentId 為 107 的上述集合中是否遞增 -
> db.incrementValueInNestedArrayDemo.find().pretty();
以下是輸出 -
{
"_id" : ObjectId("5c77dd71fc4e719b197a12f7"),
"UniqueId" : 1,
"StudentDetails" :
[
{
"StudentId" : 101,
"StudentMarks" : 97
},
{
"StudentId" : 103,
"StudentMarks" : 99
},
{
"StudentId" : 105,
"StudentMarks" : 92
},
{
"StudentId" : 107,
"StudentMarks" : 60
}
]
}檢視示例輸出,“StudentMarks”欄位已從 59 更新為 60,表示遞增 1。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP