0

我无法使用以下查询从 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,“会话”:“{\”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({"session.lastAccess":1330059784}});

没有结果返回。

4

2 回答 2

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…

如果您像这样正确存储数据,您的查询将起作用。

于 2013-07-24T12:53:18.963 回答
-1

点符号代替:http ://docs.mongodb.org/manual/reference/glossary/#term-dot-notation

db.usersessiondet.find({"session.lastAccess":1330059784}});
于 2013-07-24T10:47:00.693 回答