Reputation: 349
I have a DB called wordlists and a collection called rockyou.
I have a file called rockyou with the contents:
123456
12345
123456789
password
iloveyou
princess
1234567
rockyou
12345678
abc123
What I would like to do is load all of the contents of the file rockyou into the collection rockyou in my wordlists DB. I have tried searching google but the resources seem slim for mongo. I could really use some help with this and also maybe some good resources for this new to me DB application.
Thanks!
**EDIT* Here are the command I have used and some of what I have tried.
use wordlists
db.createCollection("rockyou")
db.rockyou.insert(copyFile(~/wordlists/rockyou))
I have tried some other methods to insert but now realize there were even further off than this one...
Upvotes: 18
Views: 30693
Reputation: 406
The legacy mongo shell cat
method is replaced in mongosh with fs.readFileSync(filename, 'utf8' )
Upvotes: 4
Reputation: 222461
If you really want to use only mongoshell, you can use cat() command and do the following (txt is not necessary, it is just how my file was named):
use wordlists
var file = cat('path/to/yourFile.txt'); // read the file
var words = file.split('\n'); // create an array of words
for (var i = 0, l = words.length; i < l; i++){ // for every word insert it in the collection
db.rockyou.insert({'word': words[i]});
}
This was tested on Mongo 3.0.1 and produced something like:
{ "_id" : ObjectId("551491ee909f1a779b467cca"), "word" : "123456" }
{ "_id" : ObjectId("551491ee909f1a779b467ccb"), "word" : "12345" }
...
{ "_id" : ObjectId("551491ee909f1a779b467cd3"), "word" : "abc123" }
But I would introduce an application logic here (for example with python):
import pymongo
connection = pymongo.Connection()
collection = connection.wordlists.rockyou
with open('path/to/yourFile.txt') as f:
for word in f.readlines():
collection.insert({'word': word.rstrip()})
Upvotes: 47