03 MongoDB Flashcards
Modelos de Dados Agregados
(inexistente no modelo de dados relacionais)
(é preciso saber como e o que deseja-se saber)
(conhecimento da estrutura agregada ajuda a armazenar e distribuir os dados)
Trabalha-se com todos os dados reunidos
CRUD
Create
Read
Update
Delete
show dbs
mostra as databases instaladas
admin, config e local estâo automaticamente criados
use databaseX
switch or create and switch to databaseX
db.collectionX.insertOne( { Y } )
acrescenta na coleção collectionX (se a coleção não existe, é imediatamente criada), o documento (único) Y
Lembrar do parênteses e chaves
db.collectionX.insertOne( {
Y
} )
acrescenta na coleção collectionX (se a coleção não existe, é imediatamente criada), o documento (único) Y
Lembrar do parênteses e chaves
_id
Identificador aleatoriamente gerado, ou podemos definir se for do interesse
Não pode estar duplicado na mesma coleção ou database ?
db.collectionX.find( )
vs
db.collectionX.find( ).pretty( )
Tudo na mesma linha
Tudo arrumadinho
db.collectionX.deleteOne( {keyX: valueX} )
Deleta o primeiro documento com aquele valor naquela chave
db.collectionX.updateOne( { “filterX”: “valueX”}, { $set {“newLineX”: “valueY”} })
acrescenta newLineX: ValueY onde tem o value X na key filterX
db.collectionX.updateOne( { “filterX”: “valueX”}, { $set {“newLineX”: “valueY”} })
acrescenta newLineX: ValueY onde tem o value X na key filterX
db.collectionX.updateMany( { }, {markerX: “valueX”} )
adiciona o valueX a todos documentos da collectionX
db.collectionX.updateMany( { }, {markerX: “valueX”} )
adiciona ou substitue pelo valueX a todos documentos da collectionX
db.collectionX.insertMany ( [ { "key1": "valueX1" "key2": "valueX2" "key3": "valueX3" } { "key1": "valueY1" "key2": "valueY2" "key3": "valueY3" } ] )
Insere esses 2 documentos
db.collectionX.find( { filterX: “value Y”} )
tudo que tiver o valor “value Y” na chave “filter X” será retornado
db.collectionX.find( { numberX: {$gt: #Y} } )
numberX = qualquer chave cujos valores serão numéricos $gt (greater than), $lte (lower or equal than), etc #Y - valor numerico qualquer
db.collectionX.updateOne( {“key1”: “valueX1”}, {$set “key2”: “newValue2”} )
No primeiro documento com Key1=valueX1, muda o valor da key2 para newValue2
db.collectionX.update( {“key1”: “valueX1”}, {“key2”: “newValue2”} )
Onde tiver key1=valueX1 , deleta tudo e fica só “key2”: “newValue2”}
melhor usar updateOne e updateMany
db.collectionX.replaceOne( {“key1”: “valueX1”}, {“key2”: “newValue2”} )
substitui tudo no documento que tem key1=valueX1 por key2=newValue2 (poderiam ser várias linhas)
Objetivo final de projection:
Reduzir consumo de dados
db.collectionX.find ( { }, {keyX: 1, _id: 0} ).pretty()
Projection
Vai devolver todos os docs (filtro é { } ou seja, todos)
Mas só vai devolver a KeyX:ValueX de cada um (1 é sim). Não vai devolver a _id (0 é não, se não especificar devolve a _id por padrão). Não vai devolver nenhuma outra keyY, KeyZ etc porque o padrão destas é 0.
Embedded Documents = Nested documents
Documentos podem ter documentos dentro deles (total de 100 em hierarquia, portanto infinito) 100 levels of nesting
máximo 16mb/documento
db.collectionX.updateMany ( { }, {$set: {key1: {key2: “value2”, key3: “value3”, key4: {key5: “value5”, key6: “value6”}}}})
Adiciona a todos ( { } ) os objetos da collectionX, a key1 que contem a key2, key3 e key4, a key4 contem a key5 e key6.
Arrays = [ ]
List of Documents (tradução é matriz)