我确信这是一个语法问题。我有一个 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 });
它只选择集合中的第一条记录,而不是当我使用模型的非嵌套版本时选择正确的记录。我认为子模型的嵌套是错误的。
就像我说的,这可能是非常明显的,但我只是不知道我错在哪里。
先谢谢你了。
1条答案
按热度按时间zzzyeukh1#
你分解模式的方式是错误的,因为你增加了一个额外的嵌套级别(即
'SMS_Data.SMS_User.SMS_User.Username'
等)。您需要从
sms_user
架构中删除SMS_User