MongoDB Mongoose 使用 Map 查找

Ali*_*hid 3 mongoose mongodb mongodb-query mongoose-schema

我有一个像这样的猫鼬模式:

const userSchema = new Schema( {
    email:{ type: String, required: true, unique:true, index:true },
    mobile:{ type: String },
    phone:{ type: String },
    firstname: { type: String },
    lastname: { type: String },
    profile_pic:{type:String},
    socialHandles: {
        type: Map,
        of: String
    },
    active: {type:Boolean, default:true}
}, {
    timestamps: true
} );
Run Code Online (Sandbox Code Playgroud)

我想查询“给我用户,socialHandles.instagram=jondoe”,我该怎么做?请帮忙

mic*_*ckl 6

Mongoose 的地图成为数据库中的嵌套对象

{ "_id" : ObjectId(""), "socialHandles" : { "instagram": "jondoe" }, ..., "__v" : 0 }
Run Code Online (Sandbox Code Playgroud)

因此您可以使用点符号来查询它:

let user = await User.findOne({ 'socialHandles.instagram': 'jondoe' });
Run Code Online (Sandbox Code Playgroud)