สำหรับฟิลด์ใหม่ ให้ใช้ $addFields ใน MongoDB $addFields ใช้เพื่อเพิ่มฟิลด์ใหม่ให้กับเอกสาร ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo429.insertOne(
... {
... "_id": 101,
... "Value": 3,
... "details": [
... {
... "Age": 29,
... "Value": 3,
... "details1": [
... 1,
... 2,
... 3
... ]
... },
... {
... "Age": 31,
... "Value": 4,
... "details1": [
... 354
... ]
... }
... ]
... }
... );
{ "acknowledged" : true, "insertedId" : 101 } แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo429.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : 101, "Value" : 3, "details" : [ { "Age" : 29, "Value" : 3, "details1" : [ 1, 2, 3 ] }, { "Age" : 31, "Value" : 4, "details1" : [ 354 ] } ] } ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างฟิลด์ใหม่และตั้งค่าการนับของฟิลด์อื่น -
> db.demo429.aggregate([
... {
... "$addFields": {
... "details" : {
... "$map": {
... "input": "$details",
... "as": "d",
... "in": {
... "Age" : "$$d.Age",
... "NumberOfDetails1": { "$size": "$$d.details1" }
... }
... }
... }
... }
... }
... ]) สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : 101, "Value" : 3, "details" : [ { "Age" : 29, "NumberOfDetails1" : 3 }, { "Age" : 31, "NumberOfDetails1" : 1 } ] }