Mongodb 更新文档中的嵌套字段(如果存在),或创建(如果不存在)
我将mongoDB与mongoDB客户端一起使用。在我的graphql变异中,我调用此方法将Mongodb 更新文档中的嵌套字段(如果存在),或创建(如果不存在),mongodb,Mongodb,我将mongoDB与mongoDB客户端一起使用。在我的graphql变异中,我调用此方法将名人添加到给定首字母的用户 export const save_famous_person_initials_association_for_given_user = async ( famous_person_id: string, _initials: string, username: string ) => { await find_famous_person_by_id(f
名人
添加到给定首字母的用户
export const save_famous_person_initials_association_for_given_user = async (
famous_person_id: string,
_initials: string,
username: string
) => {
await find_famous_person_by_id(famous_person_id).then(document => {
return users_collection.findOneAndUpdate(
{username: username},
{
$addToSet: {
my_associations: {
initials: _initials,
famous_person_id: document._id,
},
},
}
);
});
};
名人id
指另一个mongodb文档id。
这就是结果:
{"_id":{"$oid":"5f5bc12d39f5f60b0c56a1da"},"username":"abc","email":"a@b.c","password":"pwd","my_associations":[{"initials":"OO","famous_person_id":{"$oid":"5f5b957a7fdba127dc1020e1"}},{"initials":"AO","famous_person_id":{"$oid":"5f5b957a7fdba127dc1020df"}},{"initials":"AO","famous_person_id":{"$oid":"5f5b957a7fdba127dc1020e0"}}]}
我需要做的是:当我用一个现有的首字母缩写
字段添加另一个名人id
时,我希望现有的名人id
替换为新的首字母缩写
字段
为了清楚起见,myuser
对象仅使用以下字段初始化:
{"_id":{"$oid":"5f5bc12d39f5f60b0c56a1da"},"username":"abc","email":"a@b.c","password":"pwd"}
然后,一旦我开始添加对象,比如{“缩写”:“OO”,“名人”\u id:{“$oid”:“5f5b957a7fdba127dc1020e1”}
,我就想创建这样的结构。(如果它使事情变得简单,我可以用一个空的my_关联数组
字段初始化我的用户对象)
重要的是,每个姓名首字母只有一个姓名首字母
字段,如果已经有了名人id
,则替换该字段