Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

ฉันจะเชื่อมอาร์เรย์ของจำนวนเต็มในวิธีการรวม MongoDB ได้อย่างไร


หากต้องการต่อ ให้ใช้ $concat ใน MongoDB aggregate() ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -

> db.demo377.insertOne({"ListOfIds":[1001,1002,1003,1004,1005,1006,1007]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5a73462ae06a1609a00b0e")
}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{
   "_id" : ObjectId("5e5a73462ae06a1609a00b0e"),
   "ListOfIds" : [
      1001,
      1002,
      1003,
      1004,
      1005,
      1006,
      1007
   ]
}

ต่อไปนี้เป็นแบบสอบถามเพื่อเชื่อมอาร์เรย์ของจำนวนเต็มในการรวม -

> db.demo377.aggregate([
...    { "$project": {
...       "ListOfIds": {
...          "$let": {
...             "vars": {
...                "key": {
...                   "$reduce": {
...                      "input": "$ListOfIds",
...                      "initialValue": "",
...                      "in": { "$concat": ["$$value", "++", { "$toLower": "$$this" }] }
...                   }
...                }
...             },
...             "in": { "$substrCP": ["$$key", 2, { "$strLenCP": "$$key" }] }
...          }
...       }
...    }}
... ])

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" : ObjectId("5e5a73462ae06a1609a00b0e"), "ListOfIds" : "1001++1002++1003++1004++1005++1006++1007" }