mongoose通过嵌套的文件属性查询

我的mongoose模式是这样的。

var ProfileAddressSchema = new Schema({ streetAddress: { type: String, required: true }, businessAddress: { type: String, required: false }, country: {type: Schema.Types.ObjectId, ref: 'Country', required: false }, city: { type: Schema.Types.ObjectId, ref: 'City', required: false }, province: { type: String, required: false }, postalCode: { type: String, required: false }, isDelete: { type: Boolean, default: false }, sequence: { type: Number, default: 0 }, isDefault: { type: Boolean, default: false } }); var ProfileInfoSchema = new Schema({ name: { type: String, required: true }, firstName: { type: String, required: false }, addressList:[ProfileAddressSchema], }); 

我已经尝试如下,并没有奏效。 我想获得与提供的邮政编码匹配的configuration文件。

 var criteria = {}; criteria.addressList = {} criteria.addressList.postalCode = new RegExp(searchPrameters.postalCode, "i"); } serviceHelper.queryModel(ProfileInfo,criteria, { __v: false }, callback); 

使用点符号来查询embedded式文档。 你的查询结果应该是这样的

 ProfileInfo.find({ "addressList.postalCode": new RegExp(searchPrameters.postalCode, "i") }).exec(callback); 

因此,您可以使用括号表示法构造具有点符号键的查询对象:

 var criteria = {}; criteria["addressList.postalCode"] = new RegExp(searchPrameters.postalCode, "i"); serviceHelper.queryModel(ProfileInfo,criteria, { __v: false }, callback); 

有关更多示例,请参阅“ 查询embedded式文档数组 ”一节中的手册。