mongo db 从数组中取出元素

14 浏览
0 Comments

mongo db 从数组中取出元素

这个问题已经在其他地方有了答案:

如何完全从MongoDB文档中删除一个字段?

我有一个小的Mongo文档,长这个样子:

{
    "_id": {
        "$oid": "5aa441e898cc0b32a819be0c"
    },
    "details": {
        "Artist": "Cyndi Lauper",
        "Album": "She's So Unusual",
        "ReleaseYear": 1983
    },
    "SongID": 1,
    "SongTitle": "Girls Just Want To Have Fund"
}

我需要从详情数组中抽取出Artist元素,但保留整个文档中的数据。 生成的文档需要看起来像这样:

{
    "_id": {
        "$oid": "5aa441e898cc0b32a819be0c"
    },
    "details": {
        "Album": "She's So Unusual",
        "ReleaseYear": 1983
    },
    "SongID": 1,
    "SongTitle": "Girls Just Want To Have Fund",
    "Artist": "Cyndi Lauper"
}

我是Mongo的新手,所以我不太强。集合被称为歌曲,所以认为我需要做这样的事情:

db.songs.updateOne({},{$set : {"Artist":$pull{"detail.Artist"}}})

任何帮助和/或建议都将非常感激。

乔纳森

admin 更改状态以发布 2023年5月22日
0
0 Comments

你可以在MongoDB shell中像这样写东西:

var doc={doc:{key42:"value"},somekey:"value"};
doc.key42=doc.doc.key42;
delete doc.doc.key42;

。之后你可以写

doc

并按回车键。输出应该是:

{doc:{},somekey:"value",key42:"value"};

。然后你可以保存文档:

db.collection.save(doc);

0