【发布时间】:2016-06-03 13:27:53
【问题描述】:
我是编写 MongoDb 查询以获取数据的新手。我正在尝试编写一个嵌套查询来从会话集合中获取用户数据。
基本上我想得到db.sessions.passport.user.email。
但我无法获得所需的值,即vdipali8@gmail.com。
我使用的查询如下:
db.sessions.find({"session.passport.user.email":"vdipali8@gmail" });
以下是我的会话集:
db.sessions.find().pretty()
{
"_id" : "xi8sMgfYywLJdoZPpUHKa3Uau3wY",
"session" : "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"passport\":{\"user\":{\"_id\":\"5750ec592ecb2c0bfb5d39\",\"email\":\"vdipali8@gmail.com\",\"lastName\":\"Vl\",\"firstName\":\"Dipali\",\"facebookid\":\"13596511\",\"__v\":0}}}",
"expires" : ISODate("2016-06-17T02:47:45.042Z")
}
会话集合在我的 express Node 服务器文件中生成如下:
app.use(session({ secret: 'keyboard cat',
store: new MongoStore({
mongooseConnection: mongoose.connection,
collection: 'sessions'
})
}));
其架构声明如下:
var SessionSchema = new Schema({
session: String,
expires: String
}, {collection: 'sessions'}
);
是的,我正在尝试检索“电子邮件”以及其他几个字段。
【问题讨论】:
-
您是否尝试过中断查找查询?喜欢
db.sessions.find({"session.passport})或db.sessions.find({"session.passport.user})。看看你是否得到了这些查询的结果。 -
@titi23:我试过了,但没有看到任何结果。我在查询“_id”时看到的唯一结果:“xi8sMgfYywLJdoZPpUHKa3Uau3wY”。
-
字符串从何而来?所有文档的“会话”字段值格式是否相同?您想检索所有文档的“电子邮件”吗?请使用edit link 使用这些信息更新您的问题
标签: mongodb mongodb-query