Mongoose拆分模型为子文档后查询匹配异常问题求助
Mongoose拆分模型为子文档后查询匹配异常问题求助
我肯定是哪里的语法出问题了,之前在Mongoose主模型里直接这么定义是正常的:
SMS_Data: { _id: false, SMS_User: [{ Username: { type: String }, Password: { type: String } }] }
但现在我想把这部分拆成子文档,于是创建了一个SMS_User.js模型:
const mongoose = require('mongoose'); const sms_user = mongoose.Schema({ SMS_User: { Username: { type: String }, Password: { type: String } } }) module.exports = sms_user;
然后在主模型里引入它:
const sms_user = require('./SMS_User');
并把主模型里的对应部分改成:
SMS_Data: { _id: false, SMS_User: [sms_user] }
结果这就不行了!原本用嵌套写法的时候,我可以通过用户名和密码匹配到正确的用户,但现在用子文档的写法,执行下面的查询时,它总是返回集合里的第一条记录,而不是符合条件的那条:
const user = await my_model.findOne({ 'SMS_Data.SMS_User.Username': userId, 'SMS_Data.SMS_User.Password': userPw });
我感觉应该是子文档的嵌套结构搞错了,但就是没看出来问题在哪,提前谢谢大家的帮忙!
备注:内容来源于stack exchange,提问作者Strontium_99
相关产品推荐
相关产品推荐

