Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Node-Mongo DB-如何查询特定的嵌套字段_Node.js_Mongodb_Mongodb Query - Fatal编程技术网

Node.js Node-Mongo DB-如何查询特定的嵌套字段

Node.js Node-Mongo DB-如何查询特定的嵌套字段,node.js,mongodb,mongodb-query,Node.js,Mongodb,Mongodb Query,简而言之:我使用mongodb为我的node express应用程序设置会话身份验证。如果用户在数据库中已有有效会话实体,则不应创建新会话。现在,我想查询会话集合中的特定用户id 收集 该集合如下所示: {"_id":"HbAE-qMXPWl7C8tDUnC****q8OoEf76vN","expires":{"$date":{"$numberLong":"1576133617190"}},"session":"{\"cookie\":{\"originalMaxAge\":86399999,\

简而言之:我使用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;
}
.findOne({"session.user.uid": uid});
public异步比较会话ID(uid:string,sid:string){
//uid为:5df08a1b8a60c174840d2986==>与实体中的相同
const user:user | null=wait this.connectionManager.db('users').collection('sessions').findOne({uid:uid}如有);
console.log('user-found:',user);//user-found:null
返回用户&&user.\u id==sid;
}

但是我的查询每次都返回
null
,所以我假设我的查询是错误的。如何在mongodb中正确查询特定嵌套字段?

您的查询应如下所示:

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;
}
.findOne({"session.user.uid": uid});
因为,
uid
处于
会话中。用户
!希望能有帮助