[英]How to convert many-to-many relation form SQL to mongoDB colllection?
[英]How to form an unordered key with many elements in mongodb
我正在嘗試使用mongodb在mongo中的兩個用戶之間實現一個簡單的消息傳遞系統。 我希望能夠接受兩個用戶user0和user1,並在集合中搜索他們的條目。 如果這兩個用戶的條目不存在,我想創建它,然后將已發送的消息添加到其消息字段中。 如果確實存在,我只想將消息推送到消息字段。
我不太確定實現此目標的最佳方法。
db.privateChat.update(
{between:{$all:['user0', 'user1']}},
{$push:{message:'text'}}, {upsert:true}
)
和其他類似的入門方案,但它們不起作用。 他們產生錯誤:
"Cannot create base during insert of update. Caused by :ConflictingUpdateOperators Cannot update 'between' and 'between' at the same time"
我可以想到其他方法來生成對稱密鑰(通過將哈希加在一起或查詢來檢查messenger0或messenger1是否為user0)來生成對稱密鑰(其中用戶的順序對於搜索而言無關緊要)或user1,但這些似乎並不是很好的方法。 這是完全錯誤的方法嗎?
謝謝。
我認為可以通過設計解決。 假設我們在聊天室中有文檔;
chat{
_id,
between[arrayOfIds],
startTime,
events[
{message:{
fromUserId,
timeStamp,
data}
}}
]}
}
然后消息將存儲在chat的消息對象中。
應用程序將知道chat _id,因此當您在2個以上的用戶之間進行群聊時不會有任何問題。
這種方法將使您避免溢出文檔大小限制,因為您可以每周,每天等開始新的聊天條目。
玩得開心!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.