2015-03-26 19 views
5

Ho un DB chiamato wordlists e una raccolta chiamata rockyou.Leggere un file da una shell mongo

Ho un file chiamato RockYou con il contenuto:

123456 
12345 
123456789 
password 
iloveyou 
princess 
1234567 
rockyou 
12345678 
abc123 

Quello che vorrei fare è caricare tutto il contenuto del file RockYou nella RockYou raccolta nei miei elenchi di parole DB. Ho provato a cercare su google ma le risorse sembrano esili per mongo. Potrei davvero usare un po 'di aiuto con questo e forse anche alcune buone risorse per questa nuova applicazione DB.

Grazie!

** MODIFICA * Ecco il comando che ho utilizzato e parte di ciò che ho provato.

use wordlists 
db.createCollection("rockyou") 
db.rockyou.insert(copyFile(~/wordlists/rockyou)) 

ho provato alcuni altri metodi per inserire, ma ora si rendono conto ci sono stati ancora di più fuori di questo ...

+0

Si prega di mostrare il codice che avete tentato di aiutare a migliorarlo. Le risorse di – mins

+0

sembrano esili per mongo? È uno dei database più popolari e non è possibile trovare risorse per iniziare a lavorare sul problema elementare? –

+0

Ho aggiunto i miei comandi, anche io sono in grado di trovare risorse solo non come farlo. Puoi guidarmi? Forse non so cosa sto cercando? Non è una domanda accettabile? Sembri sconvolto dalla mia ignoranza @SalvadorDali. Mi dispiace aver perso tempo, ma avevo l'impressione che questo sito fosse di aiutare le persone con i loro problemi dal semplice al guru. – Dylan

risposta

13

Se davvero si vuole utilizzare solo mongoshell, è possibile utilizzare cat() command e procedere come segue (txt non è necessario, è proprio come il mio file è stato nominato):

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]}); 
} 

Questo è stato testato su Mongo 3.0.1 e prodotto qualcosa di simile:

{ "_id" : ObjectId("551491ee909f1a779b467cca"), "word" : "123456" } 
{ "_id" : ObjectId("551491ee909f1a779b467ccb"), "word" : "12345" } 
... 
{ "_id" : ObjectId("551491ee909f1a779b467cd3"), "word" : "abc123" } 

Ma vorrei logica dell'applicazione qui (per esempio con 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()}) 
+0

"se le risorse sono così abbondanti per favore dammi un link su come inserire un semplice file di testo in formato JSON e ti darò tutti i miei punti reputazionali". <- Questo non era un collegamento, ma sono comunque felice di darteli. Oltre a creare una taglia in due giorni, come posso darteli adesso? – Dylan

+0

@Dylan Ho aggiunto un collegamento. La bontà è l'unica opzione di cui sono a conoscenza, ma a dire il vero non è obbligatorio. Ho appena scritto questo per divertimento.La tua domanda diventerebbe molto meglio se specificassi che devi solo usare mongoshell (se puoi usare qualsiasi cosa, il problema è semplice, ma con mongoshell è più difficile trovare la soluzione). –

+0

lol, modificherò la mia domanda per includere tali informazioni. Questo metodo non funzionerà sul mio file di grandi dimensioni, quindi esaminerò queste altre opzioni, non sono bloccato usando solo la shell. Immagino che esaminerò una di quelle astrazioni di applicazione di cui hai parlato, come pymongo. Grazie e creerò la taglia in 2 giorni e ti faccio sapere in modo che tu possa rispondere e te la posso assegnare;) Ho detto che lo farei! – Dylan

Problemi correlati