【问题标题】:Mongodb, query within key-pair valuesMongodb,在键对值中查询
【发布时间】:2021-08-28 08:30:27
【问题描述】:

有没有办法通过roles的对象键在这个结构中查询?

   interface UsersModel{
         _id: string;
         email: string;
         roles: { [key: string]: RolesType[] };
    }

现在我将数据输入users,例如:

roles: {
   $ne: null
}

然后

const finalResult = users.filter(u => Object.keys(u.roles).includes('objectKeyIwant'));

这可以在 mongodb 端完成并避免获取所有数据然后对其进行过滤吗?

数据示例: 用户集合是这样的:

{
    _id: '610baff85c071a2bd59dc84f',
    email: 'some@email.com',
    roles : {
        "shop1" : [ 
            "shop_stock_manager"
        ],
        "shop2" : [ 
            "shop_admin", 
            "shop_stock_manager"
        ]
    }
}

我想获取在shop2 中具有任何角色的所有用户。

【问题讨论】:

  • 你能分享一些示例数据和预期输出吗?
  • 你能提供一个你的用户文档的示例 json 吗?
  • 伙计们,我已经在问题中添加了详细信息。
  • 你能检查我的答案吗?

标签: javascript typescript mongodb mongodb-query


【解决方案1】:

使用这个

db.collection.find({"roles.shop2":{$ne:[]}})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 2017-01-11
    • 2018-11-15
    • 2023-03-08
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多