如何將 ObjectIds 陣列轉換為包含原始陣列元素值的欄位的嵌入式文件陣列?
使用 aggregate 進行此類轉換。讓我們建立一個帶有文件的集合 −
> db.demo343.insertOne({
... _id: 101,
... UserName: "Chris",
... details: [
... {"Name":"John"},
... {"Name":"David"}
... ]
... }
... );
{ "acknowledged" : true, "insertedId" : 101 }使用 find() 方法顯示來自集合的所有文件 −
> db.demo343.find().pretty();
將產生以下輸出 −
{
"_id" : 101,
"UserName" : "Chris",
"details" : [
{
"Name" : "John"
},
{
"Name" : "David"
}
]
}以下是將物件陣列轉換為包含原始陣列元素值的欄位的嵌入式文件陣列的查詢 −
> db.demo343.aggregate([
... {
... $addFields: {
... details: {
... $map: {
... input: "$details",
... in: { Name: "$$this" }
... }
... }
... }
... },
... { $out: "demo343" }
... ])使用 find() 方法顯示來自集合的所有文件 −
> db.demo343.find().pretty();
將產生以下輸出 −
{
"_id" : 101,
"UserName" : "Chris",
"details" : [
{
"Name" : {
"Name" : "John"
}
},
{
"Name" : {
"Name" : "David"
}
}
]
}
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP