我无法使用以下查询从MongoDB中获取以下结果。
查询
db.usersessiondet.find({"session":{"lastAccess":1330059784}});
MongoDB中的示例存储数据。
{ "Id" : "Id9017", "_id" : "Id9017", "expires" : 1330059785, "session" : "{\"lastAccess\":1330059784,\"cookie\":{\"originalMaxAge\":14400000,\"expires\":\"2013-01-20T21:57:07.659Z\",\"httpOnly\":true,\"path\":\"/\"},\"messages\":{\"comCt\":{\"timedifference\":0,\"comCt_bytime\":0,\"commet_user_Id1574\":[{\"id\":\"Id9017_1330059784685\",\"from\":\"Id9017\",\"message\":\"asdf\",\"self\":0,\"old\":1,\"sent\":1330059784}]}}}" }
我试过
db.sample.find(); {“_ id”:“Id9017”,“Id”:“Id9017”,“expires”:1330059785,“session”:“{\”lastAccess \“:1330059784,\”cookie \“:{\”originalMaxAge \“: 14400000,\ “过期\”:\ “2013-01-20T21:57:07.659Z \”,\ “仅Http \”:真,\ “路径\”:\ “/ \”},\ “消息\”: {\ “comCt \”:{\ “为TimeDifference \”:0,\ “comCt_bytime \”:0,\ “commet_user_Id1574 \”:[{\ “ID \”:\ “Id9017_1330059784685 \”,\ “从\”: \“Id9017 \”,\“message \”:\“asdf \”,\“self \”:0,\“old \”:1,\“sent \”:1330059784}]}}}“}
db.sample.find({ “session.lastAccess”:1330059784}});
没有结果返回。
答案 0 :(得分:2)
您已在MongoDB中存储了JSON编码的字符串:
{
"Id" : "Id9017",
"_id" : "Id9017",
"expires" : 1330059785,
"session" : "{\"lastAccess\":1330059784,\"cookie\":{\"origina…
不能简单地像这样查询JSON编码的字符串,因为MongoDB的查询语言不是为查询而设计的字符串。您需要将其存储为实际的字段名称/值,例如:
{
"Id" : "Id9017",
"_id" : "Id9017",
"expires" : 1330059785,
"session" : {
"lastAccess": 1330059784,
"cookie" : { "origina…
如果您正确存储数据,那么您的查询就可以正常运行。
答案 1 :(得分:-1)
代替点符号:http://docs.mongodb.org/manual/reference/glossary/#term-dot-notation
db.usersessiondet.find({"session.lastAccess":1330059784}});