2013-06-27 1 views
0

Я новичок в MongoDB, у меня есть JSON как это:MongoDB запросы в Java

{ 
    "first_name" : "John", 
    "last_name" : "Smith", 
    "address" : { 
     "street" : "123 Main Street", 
     "city" : "Anytown", 
     "state" : "NY" 
    } 
} 

Теперь я хочу, чтобы найти все документы, где «улица» = «123» (например). В Монго оболочки, я делаю это следующим образом:

db.collection_name.find(
    { 
    'address.street' : '123' 
    } 
) 

В Java, если я хочу, чтобы найти документы, в которых «Firstname» = «Джон», я делаю это так:

BasicDBObject nameQuery = new BasicDBObject(); 
nameQuery.put("firstname", "John"); 
DBCursor cursor = collection.find(nameQuery); 

Я не могу понять, для address.street, я что-то пробовал, но это не сработало.

Я попытался это:

addressQuery.put("address.street", "123"); 

ответ

0

Что вы предлагаете должно работать. Это работает для меня:

+0

Я пробовал. Но это не работает для меня! Ты это пробовал? Получили ли вы результат? – kunal18

+0

@stalin Вы уверены, что нет опечатки в 'address.street' и в' 123 Main Street' при создании DBObject? Да, я просто попробовал это с вашими данными, и это сработало. – assylias

+0

@stalin Просто убедитесь, что вы пытаетесь с помощью 'new BasicDBObject (" address.street "," 123 ")' вместо 'new BasicDBObject (" address.street "," 123 Main Street ")' ? – assylias