我是 mongoose 的新手,我正在尝试通过代码 [user.test.test1.code
] 找到用户,知道吗?
型号:
const userSechema = new mongoose.Schema({
name: {
type: String,
required: true
},
test: [{}],
})
数据:
{
"_id": {
"$oid": "600020ab34742c2d34ae45e5"
},
"test": [{
"test1": {
"code": 11111
},
"test2": {
"code": 22222
}
}]
"name": "daniel"
}
查询:
let regex = new RegExp(req.query.searchUserKey, 'i')
const users = await User.find({ $or: [{'name': regex },{'test.test1': { code : regex} }]})
-- 解决方案--
谢谢你们,两个答案都适合我
答案 0 :(得分:1)
就像 "test.test1.code": 418816
那样简单地进行查找查询,如下所示:
db.collection.find({
"test.test1.code": 418816
})
此查询将为您提供所有存在 test.test1.code
且值为 418816
的文档。
请注意,此查询返回整个文档,而不仅仅是将子文档放入数组。但我假设您的帖子 user
是存在字段 name
的文档。
示例here