我正在嘗試從session_users. 的目的users是參考已加入會話的用戶。session_users另一方面,有對用戶的參考和一些僅在該會話期間有效的資料。
我得到session并user作為該會話和我想洗掉的用戶的參考,這在其他代碼中運行良好。
以下是從 MongoDB Compass 匯出的會話示例:
{
"_id": {
"$oid": "61a73bf460a73d52d4566546"
},
"access_code": "7297230688",
"session_users": [{
"_id": {
"$oid": "61a73bf460a73d52d4566545"
},
"last_active": {
"$date": "2021-12-01T09:10:13.810Z"
},
"user_id": {
"$oid": "61a722231970630db48cf518"
},
"user_status": "ACTIVE"
}],
"users": [{
"$oid": "61a722231970630db48cf518"
}],
"__v": 0
}
我已經嘗試過這兩種解決方案:
await session.session_users.pull({ session_users: { user_id: user._id }})
await session.session_users.pull({ user_id: user._id })
我使用類似的代碼從 users 陣列中提取用戶參考,它確實有效:
await session.users.pull(user)
我還嘗試獲取一個session_user物件作為類似于 how useris的參考,并使用它從陣列中提取它,但這也不起作用。我也曾嘗試使用findByIdAndUpdate 與$pull利用的嘗試撰寫查詢幾種不同的方法。
對我來說,似乎基于人們對該pull功能的無數問題是它有問題,但我認為我無法以任何其他方式將專案從陣列中取出。有任何想法嗎?
uj5u.com熱心網友回復:
你必須要做:
sessionModel.updateOne( { _id: YOUR_SESSION_ID }, { $pull: { session_users: { user_id: YOUR_USER_ID } } } )
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/371856.html
上一篇:如何按順序填充要建模的專案
