You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 11:54:37