是否可以单独通过键查询猫鼬地图中的元素

Is it possible to query a element in mongoose map by key alone

如果我有一个带地图的猫鼬模式。是否可以单独key查询map中的元素

const userSchema = new Schema( {
    
    socialHandles: {
        type: Map,
        of: String
    },
    active: {type:Boolean, default:true}
} );

我能够使用以下语法查询并找到其社交句柄具有 instagram 密钥并且 instagram 密钥具有特定值的用户。

let user = await User.findOne({ 'socialHandles.instagram': 'jondoe' });

如果存在名为 instagram 的密钥,我正在寻找一种查询和查找用户 instagram id 的方法。以下形式的东西,即获得具有社交句柄 instagram 的用户(稍后我需要 instagram 的值)。

let user = await User.findOne({ 'socialHandles.instagram': * });  // this is just a wrong syntax to explain what I want to achieve

使用exists

let user = await User.findOne().exists('socialHandles.instagram')

您可以这样使用 $exists

User.findOne({
  "socialHandles.instagram": {
    "$exists": true
  }
})

示例here