MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Lire un fichier depuis un shell mongo

Si vous voulez vraiment utiliser uniquement mongoshell, vous pouvez utiliser la commande cat() et faites ce qui suit (txt n'est pas nécessaire, c'est juste comment mon fichier a été nommé):

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

Cela a été testé sur Mongo 3.0.1 et a produit quelque chose comme :

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

Mais j'introduireais ici une logique d'application (par exemple avec 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()})