Showing posts with label MongoDB. Show all posts
Showing posts with label MongoDB. Show all posts

Thursday, September 29, 2022

Update, delete object in MongoDB

Update individual field in collection database object

db.collection.updateOne({title: "3 title"}, {$set:{counter: 3}})


Insert new string in collection database object

db.collection.update({}, {$set: {counter: 1}}, {$inc : {counter: 1}}, {upsert : true})


Delete string from collection database object

db.example.updateMany({},{"$unset":{"tags.words":1}})


Delete collection object by id

db.test_users.deleteOne( {"_id": ObjectId("4d512b45cc9374271b02ec4f")})


Delete all documents from collection

db.collection.deleteMany({})

https://www.mongodb.com/docs/mongodb-shell/crud/delete/


db.collection.update({ { _id : id }, { $pull: { "list": "four" } }});


db.collection.updateMany( { URL: { $regex: /Long("/ } }, [{ $set: { URL: { $replaceOne: { input: "$URL", find: "Long("", replacement: "" }  }}  }])


db.getCollection('collectionName').updateMany({$inc : {counter: 1}}, {upsert : true})


db.getCollection('collectionName').updateMany({counter: {$in : ["some title",  "some title 3"]}}, {$inc : {counter: 1}}, {upsert : true})


db.collection.aggregate([ { $group:{"_id":null, "data":{ $push:"$$ROOT" } } }, { $unwind:{ "path" : "$data", includeArrayIndex: 'counter' }  },  {  $addFields:{ "data.counter":{  $sum:["$counter", 1] }} },  {   $replaceRoot:{ "newRoot":"$data" } }])


For this, set “unique:true” i.e. the unique constraint and avoid inserting duplicates as in the below syntax

db.cards.ensureIndex({yourFieldName: 1}, {unique: true, dropDups: true})


https://www.mongodb.com/basics/create-database

https://stackoverflow.com/questions/57982189/is-there-a-way-to-add-a-counter-to-mongodb-query

https://www.tutorialspoint.com/mongodb/mongodb_autoincrement_sequence.htm

https://www.tutorialspoint.com/mongodb/mongodb_update_document.htm

https://stackoverflow.com/questions/61964449/mongodb-update-multiple-documents-solution-update-document-counter-or-insert

https://stackoverflow.com/questions/12589792/how-to-replace-substring-in-mongodb-document

https://stackoverflow.com/questions/57982189/is-there-a-way-to-add-a-counter-to-mongodb-query

https://stackoverflow.com/questions/29487351/how-to-convert-string-to-numerical-values-in-mongodb

https://stackoverflow.com/questions/29487351/how-to-convert-string-to-numerical-values-in-mongodb

https://stackoverflow.com/questions/8218484/mongodb-inserts-float-when-trying-to-insert-integer

https://database.guide/7-ways-to-count-documents-in-mongodb/

https://stackoverflow.com/questions/24985684/mongodb-show-all-contents-from-all-collections

https://stackoverflow.com/questions/3974985/update-mongodb-field-using-value-of-another-field

https://stackoverflow.com/questions/1740023/mongodb-how-to-update-multiple-documents-with-a-single-command

https://www.w3resource.com/mongodb/mongodb-field-update-operator-$inc.php

https://stackoverflow.com/questions/71732533/add-number-field-in-project-mongodb?rq=1

https://stackoverflow.com/questions/66206713/trying-to-iterate-through-a-collection-of-mongodb-results-to-update-another-coll

https://www.baeldung.com/mongodb-upsert

Tuesday, September 27, 2022

MongoDB and Node.js connection

https://zetcode.com/javascript/dotenv/

https://www.mongodb.com/languages/mern-stack-tutorial

https://attacomsian.com/blog/nodejs-mongodb-local-connection

https://stackoverflow.com/questions/68958221/mongoparseerror-options-usecreateindex-usefindandmodify-are-not-supported

https://mongoosejs.com/docs/connections.html

https://stackoverflow.com/questions/13190370/how-to-remove-duplicates-based-on-a-key-in-mongodb

https://stackoverflow.com/questions/62092955/how-do-i-remove-duplicates-in-mongodb-based-on-multiple-fields

Sunday, September 25, 2022

Connect to local MongoDB database

// mongoose do not work globally => install into project

// needed to import mongoose in both cases

npm i mongoose

const mongoose = require('mongoose');

// with Mongoose

const dbUrl = 'mongodb://127.0.0.1:27017/_db';
(async () => {
try {
await mongoose
.connect(dbUrl, {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then((con) => {
console.log(con.connection);
console.log(`MongoDB connected: ${dbUrl}`);
});
} catch (err) {
console.error(err);
}
})();

// with MongoClient

const dbUrl = 'mongodb://127.0.0.1:27017/_db';
const mongoClient = require('mongodb').MongoClient;
mongoClient.connect(
dbUrl,
{ useNewUrlParser: true, useUnifiedTopology: true },
(err, client) => {
if (err) {
return console.log(err);
}

// Specify database you want to access
const db = client.db('_db');

console.log(`MongoDB Connected: ${dbUrl}`);
}
);

DATABASE_LOCAL=mongodb://user:pass@127.0.0.1:27017/_db

https://mongoosejs.com/docs/connections.html

https://zellwk.com/blog/local-mongodb/

https://stackoverflow.com/questions/54573548/how-to-connect-to-mongodb-in-local-network-with-express-and-mongoose

MongoDB failed to unlink socket file

IGNORE THIS FUCKING ERROR AND START WORKING

User administration MongoDB Shell

sudo dpkg -i mongodb-mongosh_1.6.0_amd64.deb

mongosh

Current Mongosh Log ID: 632f7956d170bc14bd1fb47d
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.6.0
Using MongoDB:          6.0.1
Using Mongosh:          1.6.0

For mongosh info see: https://docs.mongodb.com/mongodb-shell/


To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/leg
al/privacy-policy).
You can opt-out by running the disableTelemetry() command.

test>

////////////////////////////////////////////////////////

CREATE ADMIN USER

use admin

switched to db admin

db.createUser({user: "user", pwd: "user", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]})

exit

////////////////////////////////////////////////////////

mongosh -u user -p --authenticationDatabase admin

show dbs

admin   132.00 KiB
config   12.00 KiB
local    88.00 KiB

////////////////////////////////////////////////////////

CREATE COLLECTION

use user

switched to db user

db.cards.insertOne({image: "http://127.0.0.1:3001/img/", link: "#1", title: "1 title", text: "1 Lorem ipsum dolor sit ns ectetur adipisicing elit. Similique architecto voluptatem dignissimos rerum doloribus vero dolore adipisci, maiores commodi u llam suscipit dolores cum. Vel, nemo!"})

{

 acknowledged: true,
 insertedId: ObjectId("633033768383cef7a400914f")
}

show collections

cards

db.cards.find()

[
 {
   _id: ObjectId("633033768383cef7a400914f"),
   image: 'http://127.0.0.1:3001/img/',
   link: '#',
   title: '11111111',
   text: '1Lorem ipsum dolor sit nsectetur adipisicing elit. Similique architecto voluptatem dignissimos rerum doloribus ver
o dolore adipisci, maiores commodi ullam suscipit dolores cum. Vel, nemo!'
 }
]

////////////////////////////////////////////////////////

DELETE USER

mongosh -u user -p --authenticationDatabase admin

show users

[]

CREATE NON-ADMIN USER

use user

db.createUser({user: "user", pwd: "user", roles: [ { role: "readWrite", db: "user" } ] })

{ ok: 1 }

db.dropUser("user", "comment")

{ ok: 1 }

db.dropUser("user", "writeConcern") // delete user

////////////////////////////////////////////////////////

https://stackoverflow.com/questions/23943651/mongodb-admin-user-not-authorized

use admin

db.grantRolesToUser("user", ["root"])

DELETE DATABASE

use user

switched to db user

db.dropDatabase()

{ ok: 1, dropped: 'user' }


show dbs //to list existing databases

use <dbname> //the <dbname> is the database you'd like to drop

db //should show <dbname> just to be sure I'm working with the right database

db.dropDatabase() //will delete the database & return { "dropped" : "<dbname>", "ok" : 1 }

MongoDB errors and troubleshooting

sudo systemctl daemon-reload // if failed to start mongod.service

sudo service mongod stop

sudo apt-get purge mongodb-org*

sudo rm -r /var/log/mongodb

sudo rm -r /var/lib/mongodb

sudo apt remove mongodb-org-server


sudo systemctl stop mongod

sudo systemctl start mongod

sudo systemctl status mongod


nmap -p- localhost | grep mongod

sudo ufw status


IGNORE "/tmp/mongodb-27017.sock","error"

"msg":"Failed to unlink socket file","attr":{"path":"/tmp/mongodb-27017.sock","error":"Operation not permitted"}

https://wiki.archlinux.org/title/MongoDB

https://mongoosejs.com/docs/migrating_to_6.html#no-more-deprecation-warning-options

https://mongoosejs.com/docs/plugins.html

Working with MongoDB Shell

Thursday, September 22, 2022

Configuring MongoDB on Kubuntu 22.10

sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb

sudo dpkg -i mongodb-org-server_6.0.1_amd64.deb

mongod --version

sudo cp -r /var/lib/mongodb /var/lib/mongodb.bak

sudo chown -R mongodb:mongodb /var/lib/mongodb

sudo chown mongodb:mongodb /tmp/mongodb-27017.sock

ls -la

sudo ufw allow 27017


sudo systemctl start mongod

sudo systemctl status mongod

MongoDB install on Kubuntu 22.10

sudo apt update

apt list mongodb*

https://www.mongodb.com/try/download/community

sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb

sudo dpkg -i mongodb-org-server_6.0.1_amd64.deb

sudo dpkg -i mongodb-mongosh_1.6.0_amd64.deb