mongodb 领域的动态密钥名称
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 为 pressed/opened 时,我想将当前日期插入到键名为“7”的对象中的键“claimed_at”。
我尝试了一些变体:
const result = await PrivateUserData.updateOne(
{ id: myID },
{ $set: { "codes.`${door_number}`.date_claimed" : date,
}
}
);
但这行不通。起作用的是:"codes.5.date_claimed"。所以静态路径。在这种情况下,名称为 5 的对象更新了 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}}
);
如果动态行为基于数据库中的信息,请发送样本数据和预期输出,以便我们了解您的需求。
我正在为朋友制作数字圣诞日历。每天他都能领取一个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 为 pressed/opened 时,我想将当前日期插入到键名为“7”的对象中的键“claimed_at”。
我尝试了一些变体:
const result = await PrivateUserData.updateOne(
{ id: myID },
{ $set: { "codes.`${door_number}`.date_claimed" : date,
}
}
);
但这行不通。起作用的是:"codes.5.date_claimed"。所以静态路径。在这种情况下,名称为 5 的对象更新了 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}}
);
如果动态行为基于数据库中的信息,请发送样本数据和预期输出,以便我们了解您的需求。