如何找到一個文檔並找到它,如果找到,但插入並檢索它,如果沒有在一個命令中找到?使用MongoDB 3.4加載和保存用戶數據
我希望我的文檔看起來像用戶數據的格式大綱。這裏是什麼樣子
{
"username": "HeyAwesomePeople",
"uuid": "0f91ede5-54ed-495c-aa8c-d87bf405d2bb",
"global": {},
"servers": {}
}
當用戶第一次登錄時,我想存儲數據的前兩個值(用戶名和UUID),並創建這些空值(全球和服務器。這兩項全球性和服務器稍後將有更多的信息填入其中,但現在它們可以是空白的)。但我也不想覆蓋任何數據,如果它已經存在的用戶。
我通常會使用insertOne或updateOne調用集合,然後使用upsert(new UpdateOptions()。upsert(true))選項插入,如果找不到,但在這種情況下,我還需要檢索用戶的文檔也是如此。
因此,在數據庫中找不到用戶的情況下,我需要將概述數據插入數據庫並返回保存的文檔。在數據庫中找到用戶的情況下,我需要從數據庫中返回文檔。
我該怎麼做呢?我正在使用最新版本的Mongo,它棄用了舊的BasicDBObject類型,所以我無法在網上找到許多使用新「文檔」類型的地方。另外,我正在使用Java的Async驅動程序,並希望將呼叫保持在最低限度。
什麼是您的過濾標準?在插入新記錄之前如何檢查記錄? – Veeram