这是我的JSON文档之一的示例:
{
"_id": 1,
"SongId": 1,
"Details": {
"Artist": "Cyndi Lauper",
"Album": "She's So Unusual",
"ReleaseYear": 1983
},
"SongTitle": "Girls Just Want To Have Fun"
}
如何编写查询以将“艺术家” 的位置及其值从“详细信息” 文档中移出,而保留“相册”和“发行年份”仍然嵌入。
答案 0 :(得分:0)
除了更新字段名称之外,$rename
operator还可以用于将字段移出(或移入)嵌入式文档。
处理嵌入式文档中的字段时,需要使用dot notation来引用字段名称。
假设集合名称为discography
,则可以使用以下方法移动Details.Artist
字段:
db.discography.update(
{_id: 1},
{$rename: { "Details.Artist": "Artist"}}
)
示例结果:
> db.discography.findOne({_id: 1})
{
"_id" : 1,
"SongId" : 1,
"Details" : {
"Album" : "She's So Unusual",
"ReleaseYear" : 1983
},
"SongTitle" : "Girls Just Want To Have Fun",
"Artist" : "Cyndi Lauper"
}