我正在尝试获取子属性为true
的文档数组。这是一些代码:
public static getTeams(req, res) {
// Initialize a connection to the database
Globals.initDb(res).then((db: Db) => {
// Reference a collection in the Database
db.collection('teams', (error: Error, collection: Collection) => {
// Check if an error occured getting the collection
Globals.checkError({ error, result: collection, res }).then(() => {
// find teams that a user administrates
collection.find(
{ 'usergroups.users': { [req.params.id]: true } },
{ name: 1, icon: 1, type: 1, thumbnail: 1 }
).toArray((err, teams: Array<{ name: string, icon: string }>) => {
// make sure that went through OK
Globals.checkError({ error: err, result: teams, res }).then(() => {
if (!teams[0]) {
teams = [];
}
res.status(200).json(teams);
});
});
});
});
});
}
checkError
只是我编写的一个函数,可以更容易地检查错误,并且它运行正常,我检查了它。我正在尝试访问usergroups.users.#userId#
为真的团队。因此,如果您的ID为j4k53,则usergroups.users.j4k53
为真。
但是,如果多个ID属实,则不会返回文档。例如,如果j4k53
和lfk3m
都为真,那么它们都不会被返回。
感谢您的帮助。 (这是带有打字稿的节点,所以如果你不熟悉TS,它可能看起来有点时髦。)
答案 0 :(得分:0)
知道了:你可以这样写:
{ ['usergroups.users.' + req.params.id]: true}
祝所有发现这个有用的人好运!