2014-01-26 4 views
0

У меня небольшая проблема с вложенными запросами в mongodb.Ошибки, выполняемые вложенным запросом mongodb

У меня есть коллекция со следующей структурой -

{ 
    "_id" : Objectid(..), 
    "result" : { 
     "name" : nameValue, 
     "reference" : base64Value, 
     "city" : cityValue 
    } 
} 

Теперь я должен сделать два запроса в Монго оболочки -

  • поиска конкретного эталонного значения (так запроса равенства)

Я использую следующий запрос -

db.TestCollection.find("result.reference" : a3d245e343 } 

, но я ничего не получаю, когда я знаю, что запись есть в коллекции

  • поиска и печати для всех значений города.

Ищу напечатать что-то вроде this--

{ "city": "new york city" } 
{ "city" : "brooklyn" } 
... etc 

Для этого я использую этот запрос -

db.TestCollection.find({}, {"results.city", 1}) 

Для этого я не получаю выход я надеялся но получить только список всех значений «_id», таких как:

{ "_id" : ObjectId("52e466bd562bdb7b1b320d1d") } 
{ "_id" : ObjectId("52e466be562bdb7b1b320d1e") } 
{ "_id" : ObjectId("52e466be562bdb7b1b320d1f") } 
{ "_id" : ObjectId("52e466bf562bdb7b1b320d20") } 
{ "_id" : ObjectId("52e466bf562bdb7b1b320d21") } 
{ "_id" : ObjectId("52e466bf562bdb7b1b320d22") } 
{ "_id" : ObjectId("52e466c0562bdb7b1b320d23") } 
{ "_id" : ObjectId("52e466c0562bdb7b1b320d24") } 
{ "_id" : ObjectId("52e466c1562bdb7b1b320d25") } 
{ "_id" : ObjectId("52e466c1562bdb7b1b320d26") } 
{ "_id" : ObjectId("52e466c2562bdb7b1b320d27") } 
{ "_id" : ObjectId("52e466c2562bdb7b1b320d28") } 
{ "_id" : ObjectId("52e466c2562bdb7b1b320d29") } 
{ "_id" : ObjectId("52e466c3562bdb7b1b320d2a") } 
{ "_id" : ObjectId("52e466c3562bdb7b1b320d2b") } 
{ "_id" : ObjectId("52e466c4562bdb7b1b320d2c") } 
{ "_id" : ObjectId("52e466c4562bdb7b1b320d2d") } 
{ "_id" : ObjectId("52e466c4562bdb7b1b320d2e") } 
{ "_id" : ObjectId("52e466c5562bdb7b1b320d2f") } 
{ "_id" : ObjectId("52e466c5562bdb7b1b320d30") } 
has more 

Wh я делаю неправильно?

Я знаю, что есть много вопросов относительно запросов, но я все еще обнимаю всю идею. Спасибо, что помогли новичкам.

ответ

0

Я нашел проблему с обеих команд -

  1. По какой-то причине условие должно быть дано в одинарные кавычки, как это -

    db.TestCollection.find («result.reference» : a3d245e343}

    Я думал, что я могу использовать двойные кавычки там, но похоже, что я ошибаюсь

  2. Я использовал запятую вместо сотрудничества. lon в проекторе. Правильный ответ -

    db.TestCollection.find ({}, { "results.city": 1})

Смежные вопросы