如何使用流星访问文档上的特定字段



我能够用这个代码获得User文档

Users.findOne(userId)

CCD_ 2也是这样。

{
"_id" : "123sdasdasd",
"createdAt" : ISODate("2022-06-15T20:36:01.549+0000"),
"archived" : false,
"roles" : {
"internal" : [
"admin",
"maneger"
],
"client" : [
"admin",
"maneger",
"normal-user",
],
"other" : [
"admin",
"maneger",
"normal-user",
"manage"
],
},
"username" : "sample@gmail.com"
}

我在这里的目标是确保这个用户是否有一个包含clientroles列。

我相信这是在服务器端,但我的部分代码看起来是这样的。

Roles.removeUsers = (userId, groupName) => {
console.log(Users.findOne(userId)); // got document successfully 
console.log(Users.findOne(userId).roles[groupName]); // got undefined
if (Users.findOne(userId).roles[groupName].length < 1) {
sampledataUpdate.$pull.userIds = userId;
}
};

groupName可以是internalclientother或其他字符串。

目前,我将groupName作为client

如何确保该用户在roles列中是否有client

另一个小问题是,如果你看看上面的数据结构,

我能把roles说成column吗?

_idcreatedAtarchivedcolumn

以及列内部(在这种情况下为角色(,描述internalUsers0或other的正确单词是什么?那是key吗?

谢谢!

我能够用这种方式完成它。

if (Users.find({ _id: userId, [`roles.${groupName}`]: { $exists: true }}).count()) {
// .......
}

最新更新