![](/img/trans.png)
[英]How to update a nested array field inside another nested array in mongo DB using Mongoose Node JS
[英]Node - Mongo DB - How do I query for a specific nested field
简而言之:我使用 mongodb 为我的 node-express 应用程序设置了会话身份验证。 如果用户在数据库中已经有一个有效的会话实体,则不应创建新会话。 现在我想在我的会话集合中查询特定的用户 ID。
该集合如下所示:
{"_id":"HbAE-qMXPWl7C8tDUnC****q8OoEf76vN","expires":{"$date":{"$numberLong":"1576133617190"}},"session":"{\"cookie\":{\"originalMaxAge\":86399999,\"expires\":\"2019-12-12T06:36:29.898Z\",\"secure\":false,\"httpOnly\":true,\"path\":\"/\",\"sameSite\":true},\"user\":{\"uid\":\"5df08a1b8a60c174840d2986\"}}"}
我的查询如下所示:
public async compareSessionIds(uid: string, sid: string) {
//uid is: 5df08a1b8a60c174840d2986 ==> the same as in the entity
const user: User | null = await this.connectionManager.db('users').collection<User>('sessions').findOne({uid: uid} as any);
console.log('user found: ', user); // user found: null
return user && user._id === sid;
}
但是我的查询每次都返回null
所以我假设我的查询是错误的。 如何正确查询 mongodb 中的特定嵌套字段?
你的查询应该是这样的:
.findOne({"session.user.uid": uid});
因为, uid
在session.user
! 希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.