簡體   English   中英

mongodb Realm 的動態密鑰名稱

[英]Dynamic key name for mongodb Realm

我正在為朋友制作數字聖誕日歷。 每天他都可以領取 Steam 游戲。

因此,在我為他創建的用戶帳戶中的 mongodb 中有一個稱為代碼(對象)的鍵。 結構如下:

_id: blbalbalba
codes: {
   1 : {
      title: GTA V,
      code: AISHD-SDAH-HAUd, 
      claimed_at: ,
   },
   2 : {
      title: Fortnite,
      code: HHF7-d88a-88fa,
      claimed_at: ,
   }
}

只是示例數據。 現在在客戶端應用程序中,當按下/打開按鈕(門)7 時,我想將當前日期插入 object 中的鍵“claimed_at”,鍵名為“7”。

我嘗試了一些變體:

const result = await PrivateUserData.updateOne(
  { id: myID },
  { $set: {  "codes.`${door_number}`.date_claimed" : date,   
  } 
  }
);

但這不起作用。 起作用的是: "codes.5.date_claimed" 所以一個 static 路徑。 在這種情況下,名稱為 5 的 object 的 date_claimed 密鑰已更新。 但是如何使用帶有變量而不是數字的動態路徑?

提前致謝!

如果您在調用查詢之前知道變量值,我認為下面的兩個都可以工作。

var door_number=5;
var date= new Date("...");

const result = await PrivateUserData.updateOne(
  { id: myID },
  { $set : { ["codes."+door_number+".date_claimed"] : date}}
);
var door_number=5;
var date= new Date("...");

const result = await PrivateUserData.updateOne(
  { id: myID },
  { $set : { [`codes.${door_number}.date_claimed`] : date}}
);

如果動態行為是基於數據庫上的信息,如果您可以發送樣本數據和預期的 output,那么我們知道您需要什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM