我正在尝试使用MongoDB构建好友列表。
这是我目前的结构:
{
"_id": {
"$oid": "601c570da04b75fabcd2705d"
},
"user_id": 1,
"friendslist": {
3 : true
}
}
如何创建对Hashmap进行放置的查询(哈希图为"friendslist"
),键为3,代表好友的ID,true标志代表未处理的好友请求的状态。(真正的意思是他们是朋友,假的则是待定的朋友请求)
这是我目前拥有的:
const upsertFriendId = db.collection('friends')
.updateOne(
{ user_id: userId },
{ $set: { ???? : ????} },
{ upsert: true }
);
我无法弄清楚需要放入$set
对象中的语法。
为了确保您不会覆盖内的其余键friendlist
,您可以执行如下更新
const mongoFriendKey = `friendlist.${/* FRIEND_ID_VARIABLE_GOES_HERE */}`;
const upsertFriendId = db.collection('friends')
.updateOne(
{
user_id: userId
},
{
$set:
{
[mongoFriendKey] : true
}
},
{ upsert: true }
);
在上面的代码中,将替换/* FRIEND_ID_VARIABLE_GOES_HERE */
为friend id变量。这样做,查询将查找具有该特定ID的朋友,然后它将尝试将其设置为(true
如果未找到),而不会覆盖您的整个friendlist
对象。
另外,我希望您知道upsert的作用,如果更新找不到文档,那么最终将插入一个文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句