CRUD MongoDB SQL
Create Insert Insert
Read Find Select
Update Update Update
Delete Remove Delete
Команды:
db - показать поточную базу.
db.people.{action}
db - key word
people - collection (like table in sql)
.findOne( selector | undefined ) -- вивести только первый
Эти две функции могут принимать объект селектора, который отыграет роль фильтра.
selector = {condition, which_fields_only};
which_fields_only = {the_field: true, _id: false};
_id - поле, которое только одно по-умолчанию помещается в результат после применения селектора.
_id = ObjectId("fgfd23423423423432egdf") // генеруеться Mongo, вставляеться в кожен запис колекції, являється унікальним ідентифікатором.
db.employees.find({position: "developer"})
find выводит 20 записей с настройками по-умолчанию, если в курсоре содержится еще, то следующие 20 можно вывести командой it
db.some.find().pretty() - приводит к более читабельному внешнему виду.
$in - один из указанных
Найти дороже 10 000 при этом с рейтингом 5 и выше
Create Insert Insert
Read Find Select
Update Update Update
Delete Remove Delete
Команды:
db - показать поточную базу.
db.people.{action}
db - key word
people - collection (like table in sql)
Actions
.find( selector | undefined ) -- select all.findOne( selector | undefined ) -- вивести только первый
Эти две функции могут принимать объект селектора, который отыграет роль фильтра.
selector = {condition, which_fields_only};
which_fields_only = {the_field: true, _id: false};
_id - поле, которое только одно по-умолчанию помещается в результат после применения селектора.
_id = ObjectId("fgfd23423423423432egdf") // генеруеться Mongo, вставляеться в кожен запис колекції, являється унікальним ідентифікатором.
db.employees.find({position: "developer"})
find выводит 20 записей с настройками по-умолчанию, если в курсоре содержится еще, то следующие 20 можно вывести командой it
db.some.find().pretty() - приводит к более читабельному внешнему виду.
Conditions of Selector
$gt, $gte, $lt, $lte
var condition = {
the_field_in_record: { $gt: 50, $lte: 57 }
};
Если в записях под таким именем находятся не только числа, но и строки например, то в результате будут записи только того типа, по которому мы проводим сравнение.
$exists, $type, $regex
var condition = {
the_field_in_record: { $exists: true | false}
};
var condition = {
the_field_in_record: { $type: 2} // 2 - this numbers defined in bson specification. The 2 is for String
};
$or, $and
var condition = {
$or: [
{the_field_1: { $regex: "ends with this subtring$"}},
{the_field_2: { $exists: true}}
]
};
$and - менее эффективный по сравнению с написанием обычного кондишина (в котором все условия обьединяются логическим И)
Condition for array inside
var condition = {
the_field_in_record: "value"
};
Если the_field_in_record является массивом, и среди его элементов, будет значение "value", то такой рекорд проходит фильтрацию.
Condition for array $all, $in
$all - документ-массив, должен содержать все указанные элементы$in - один из указанных
< db.users.find( { friends : { $all : [ "Joe" , "Bob" ] }, favorites : { $in : [ "running" , "pickles" ] } } );
{ name : "Cliff" , friends : [ "Pete" , "Joe" , "Tom" , "Bob" ] , favorites : [ "pickles", "cycling" ] }
Condition Dot Notation
Якщо ми починаємо вибирати записи по значенням підполів, то тоді вступає умова, що об'єкт має строго відповідати вказаній умові. Що мається на увазі: ми не можемо вказати лише певні підполя, або навіть змінити порядок полів, указавшни при цьому всі -- все одно це не буде сприйматись як співпадінням. Саме для цього і ввели дотнотейшин, де ми можемо вказати лише одне-декілька подполівvar condition = {
"the_field_in_record.its_subfield": "value"
};
Ось більш наглядний приклад:
Найти дороже 10 000 при этом с рейтингом 5 и выше
{ product : "Super Duper-o-phonic",
price : 100000000000,
reviews : [ { user : "fred", comment : "Great!" , rating : 5 },
{ user : "tom" , comment : "I agree with Fred, somewhat!" , rating : 4 } ],
...
}
db.catalog.find({price: {$gt: 10000}, "reviews.rating": {$gte: 5}})
Комментариев нет:
Отправить комментарий