Mongo основы. Команды
Mongo - основные команды.
Указываем одно из полей - ключевым.
db.names.ensureIndex({name:1},{unique: true})Вставка записи в коллекцию
db.getCollection('users').insert({
id : 69056,
info :[{
name : "Ребята и зверята",
slug : "rebyata-i-zveryata",
pages : 33,
lang : "russian",
date_publ : ISODate("2010-09-24")
}],
picture : "kniga-king-lyusi-lyubovnaya-svyaz-napokaz.jpg",
genre : [
{name : "Взрослая", id : 34, slug : "vzroslaya"},
{name : "Литература", id : 33, slug : "literatura"}
],
author : [{name : "Перовская Ольга Васильевна", slug : "perovskaya-olga-vasilevna", code: 22362}],
date_add : ISODate("2010-09-24"),
small_prev : "Желая урезонить своих бывших одноклассниц. Зоя Монтгомери представила им в качестве своего бойфренда успешного бизнесмена и красавца Дана Форрестера. Ей удалось уговорить его побыть ее другом всего лишь на один вечер. Спектакль удался на славу, но после него заговорщики расстались. Впрочем, уже на следующий день Зоя решила предложить Дану сексуальное партнерство, на что он ей сообщил, что встречается с одной женщиной не более трех раз. Однако почему-то трех свиданий с Зоей Дану не хватило, и он предложил ей новое соглашение...",
reitings : [{plus : 172, minus: 23}],
viewed : 5,
blocked : 0,
tags : ["books", "детская литература"],
comments : [
{name : "Andrey", user_id : 2, date_add : ISODate("2010-09-24"), text : "Отлдичная книга"},
{name : "Sergey", user_id : 0, date_add : ISODate("2010-09-24"), text : "Всегда хотел ее прочитать"}
]
})Всю информацию из коллекции можно удалить вот так:
db.users.remove();
Удалить объект по какому то параметру можно так:
db.users.remove( { “name” : “Vasya” } );Update
Если мы хотим выполнить инкремент какого то поля, то используем модификатор $inc. Чтоб увеличить возраст на 2 года делаем так:
db.users.update( { name: “joe” } , { $inc : { age: 2 } } );Если нужно установить значение какого то ключа используем модификатор $set
db.users.update( { name:”joe” } , { $set: { age: 25 } } );Он находит документ, где имя joe и устанавливает age в 25. Важно, что если ключа age нет, то он будет создан.
Если нужно удалить ключ существует модификатор $unset
db.users.update( { name: ”joe” } , { $unset: { age : 1 } } );Экспорт выбранных полей в CSV
malta1994:~# mongoexport -u admin -p pass --authenticationDatabase "admin" -d database -c collection -f id --type=csv > /tmp/mongo_txt.csvFind - поиск
db.getCollection('books').find({'info.slug': /.&./})Ищет большие и маленькие буквы
db.books.find({ name: { $regex: /любимая/i }},{id:1, name:1}).limit(5)
Полнотекстовый поиск с сортировкой
db.books.find({$text: {$search: "иванов петров"}}, {score: {$meta: "textScore"}}).sort({score:{$meta:"textScore"}})Сортировка
db.books.find({}).sort( { viewed: -1 } )'-1' - по убыванию
'1' - по возрастанию
Определенное кол-во записей (limit)
db.books.find({}).limit(2)Вывести определенные поля
db.books.find({}, { name: 1, slug: 1, subgenres: 1, viewed: 1, _id:0, "info.picture": 1}).sort( { viewed: -1 } ).limit(2)Выводим такие поля как: name, slug, subgenres, viewed
Replace
db.getCollection('books').find({'info.slug':/. ./}).forEach(function(test){
test.info.slug = test.info.slug.replace(" ","-");
db.getCollection('books').save(test);
});Основные команды поиска:
https://habrahabr.ru/post/139643/
Полнотекстовый поиск:
db.getCollection('authors').find({$text: {$search: "Иванов"}}, {score: {$meta: "textScore"}}).sort({score:{$meta:"textScore"}})http://code.tutsplus.com/tutorials/full-text-search-in-mongodb--cms-24835
Редномная выборка
db.getCollection('vk_projects').find({}).limit(-1).skip(Math.random() * db.getCollection('vk_projects').count())Поиск и вывод массива
https://docs.mongodb.com/manual/reference/operator/projection/elemMatch/
db.getCollection('vk_posts_2').aggregate(
{$match: {public_url: "https://new.vk.com/nowhello"}},
{$unwind: "$posts"},
{$match: {"posts.posted": 1}}
)
Comments
https://www.etutorialspoint.com/index.php/mongodb/mongodb-introduction