Connessione a MongoDB in Dart
Ho un pò abbandonato Dart per vari motivi; ma visto che lo sviluppo ha accelerato e che sono state introdotte diverse novità, ho deciso di rispolverarlo.
Oggi vediamo come connetterci ad un database MongoDB.
Prima di tutto abbiamo bisogno della libreria apposita; nel file pubspec.yaml inserite questo:
dependencies:
mongo_dart: ^0.4.4
Io sto usando IntelliJ come IDE, e fa praticamente tutto da solo per installare le dipendenze.
Fatto questo vediamo il codice:
import 'package:mongo_dart/mongo_dart.dart';
void main(List<String> arguments) async {
var db = Db('mongodb://127.0.0.1:27017/test');
await db.open();
if (db.isConnected) {
var collection = db.collection("persone");
print("CANCELLO DATI PER TEST");
await collection.drop();
print("INSERISCO UN RECORD");
await collection.insertAll([
{"nome": "matteo"}
]);
print("LEGGO I RECORDS");
await collection.find().forEach((element) {
print(element);
});
print("INSERISCO ALTRI DUE RECORDS CON ALTRI CAMPI");
await collection.insertAll([
{"nome": "ciccio", "eta": 37},
{"nome": "franco", "email": "franco@fr.it"},
]);
print("LEGGO I RECORDS DI NUOVO, VISUALIZZO SOLO IL NOME");
await collection.find().forEach((element) {
print(element['nome']);
});
print("CHIUDO IL DATABASE");
await db.close();
} else {
print("DATABASE NON CONNESSO");
}
}
Per fare dei test, concello ogni volta i dati della collezione; ovviamente state attenti in produzione.
Questo perchè non ho impostato indici, e quindi ogni volta inserirebbe tutti i dati duplicandoli.
Poi, ho letto due volte il db; questo l'output:
CANCELLO DATI PER TEST
INSERISCO UN RECORD
LEGGO I RECORDS
{_id: ObjectId("60507518bd50b48f703b9d7f"), nome: matteo}
INSERISCO ALTRI DUE RECORDS CON ALTRI CAMPI
LEGGO I RECORDS DI NUOVO, VISUALIZZO SOLO IL NOME
matteo
ciccio
franco
CHIUDO IL DATABASE
Come vedete una volta stampo tutti i dati del records; la seconda volta solo un campo.
Enjoy!
dart mongodb mongo_dart pubspec
Commentami!