[英]How to use nested Mongodb query to fetch data from a collection
我是編寫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")
}
會話集合是在我的快速節點服務器文件中生成的,如下所示:
app.use(session({ secret: 'keyboard cat',
store: new MongoStore({
mongooseConnection: mongoose.connection,
collection: 'sessions'
})
}));
並且其架構聲明如下:
var SessionSchema = new Schema({
session: String,
expires: String
}, {collection: 'sessions'}
);
是的,我正在嘗試檢索“電子郵件”以及其他一些字段。
不可能,您查詢的是正確的,但session field is STRING
因此您不能在STRING字段的mongodb中使用點運算符。 請把對象放在會話字段中,然后它將起作用。
像這樣
{
"_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")
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.