Возможно, сравнение MongoDB с SQL поможет вам ...
В запросах SQL работают с таблицами, столбцами и строками в операциях на основе множеств. Существуют предопределенные схемы (и, надеюсь, индексы), помогающие обработчику запросов (а также запросчику!)
Таблица SQL / Строки
id | Column1 | Column2
-----------------------
1 | aaaaa | Bill
2 | bbbbb | Sally
3 | ccccc | Kyle
SQL-запрос
SELECT * FROM Table1 WHERE Column1 = 'aaaaa' ORDER BY Column2 DESC
Этот запрос вернет все столбцы в таблице с именем Table1 , где столбец с именем Column1 имеет значение aaaaa , затем упорядочит результаты по значение Столбец2 и вернуть клиенту результаты в порядке убывания.
MongoDB
В MongoDB нет таблиц, столбцов или строк ... вместо этого они Коллекции (это как таблицы) и Документы внутри Коллекций (как строки.)
Коллекция MongoDB / Документы
{
"_id" : ObjectId("497ce96f395f2f052a494fd4"),
"attribute1" : "aaaaa",
"attribute2" : "Bill",
"randomAttribute" : "I am different"
}
{
"_id" : ObjectId("497ce96f395f2f052a494fd5"),
"attribute1" : "bbbbb",
"attribute2" : "Sally"
}
{
"_id" : ObjectId("497ce96f395f2f052a494fd6"),
"attribute1" : "ccccc",
"attribute2" : "Kyle"
}
Однако не существует предопределенной «структуры таблицы» или «схемы», подобной таблице SQL. Например, вы можете видеть, что второй документ в этой коллекции имеет атрибут randomAttribute , которого нет ни у одного из других документов.
Это прекрасно, это не повлияет на наши запросы, но учитывает некоторые очень мощные вещи ...
Данные хранятся в формате BSON, который очень близок к стандарту Javascript JSON. Вы можете узнать больше на http://bson.org/
Запрос MongoDB
SELECT * FROM Table1 WHERE Column1 = 'aaaaa' ORDER BY Column2 DESC
Как бы мы поступили так же в оболочке MongoDB?
> db.collection1.find({attribute1:"aaaaa"}).sort({attribute2:-1});
Возможно, вы уже можете видеть, насколько в действительности запрос MongoDB похож на SQL (хотя и выглядит совершенно по-другому). У меня есть несколько сообщений на http://learnmongo.com, которые также могут вам помочь.