Mise en route
Installez Couchbase Server et découvrez-en rapidement l’essentiel à travers ce guide pas à pas.
Nous vous proposons une prise en mains en quelques minutes et sans codage : explorez l'application de référence, exécutez quelques requêtes exemples dans la ligne de commande et testez le nouveau Query Workbench !
Couchbase serveur 4.6.2 est maintenant GA!
Pour le télécharger, sélectionnez Enterprise Edition. Jouez avec l'éditeur de requêtes intégré et navigateur de schéma. Essayez l'API sous-document - lire et écrire des champs individuels (y compris les tableaux et les compteurs). L'aperçu développeur de recherche de texte intégral, le prendre pour un spin.
Ce n'est pas tout. Repoussez les limites de performances des requêtes avec des index de mémoire optimisée, indexation de tableau, et l'indice se joint aussi.
-
Choisissez l’édition que vous souhaitez télécharger—Couchbase Server Enterprise Edition (4.6.2) ou Community Edition (4.6.0).
Choisissez -
Follow install instructions.
L’application de référence, CBTravel, montre comment interroger les documents en consignant toutes les requêtes dans une console affichée à l’écran. Découvrez plus en détail son modèle de données, l’architecture de l’application et les requêtes dans la documentation.
Le code source se trouve sur GitHub. Il est disponible en langage Java, .NET, Node.js, et Go.
Option 1: essayez l’application en ligne ici.
Option 2: installez l’application et exécutez-la en local.
- Installez Couchbase Server 4.0.
- Installez Node.js.
- Entrez la commande suivante :
$ npm install couchbase
-
Entrez les commandes suivantes :
$ mkdir ~/try-cb $ git clone https://github.com/couchbaselabs/try-cb-nodejs.git ~/try-cb $ cd ~/try-cb $ sudo npm install node-gyp -g $ npm install
- Si vous avez configuré Couchbase Server après l’avoir installé, modifiez le fichier config.json à la racine du dépôt cloné et mettez à jour les champs de nom d’utilisateur et de mot de passe.
- Entrez la commande suivante :
$ node app.js
- Accédez à l’adresse http://localhost:3000 dans un navigateur.
- Appuyez sur control-c pour arrêter l’application.
Vidéo de démonstration de l’application de référence.
Vous pouvez exécuter des requêtes via la ligne de commande à partir du shell de requête interactif.
- Connectez-vous à la console d’administration (http://localhost:8091).
- Accédez à Settings (Paramètres) > Sample Buckets (Conteneurs d’exemples).
- Installez les conteneurs d’exemples.
-
Accédez au répertoire bin :
# Windows $ cd C:\Program Files\Couchbase\Server\bin # Linux $ cd /opt/couchbase/bin # Mac OS X $ cd /Applications/Couchbase\ Server.app/Contents/Resources/couchbase-core/bin
-
Exécutez le shell de requête interactif :
#Windows $ cbq.exe # Linux / Mac OS X $ ./cbq
-
Créez l’index principal :
cbq> CREATE PRIMARY INDEX ON `beer-sample` USING GSI;
- Exécutez les exemples de requêtes.
- Quand vous avez terminé, appuyez sur control-d pour sortir.
Identifiez les types de bières impériales disponibles.
SELECT DISTINCT category, style
FROM `beer-sample`
WHERE type = "beer" AND
style LIKE "%Imperial%"
ORDER BY category, style;
Recherchez les bières les plus fortes.
SELECT name, abv
FROM `beer-sample`
WHERE type = "beer" AND
abv > 10
ORDER BY abv DESC LIMIT 10;
Qu’est-ce que le manchot nucléaire tactique ?
SELECT breweries.name AS brewery, beers.name AS beer,
beers.category, beers.style, beers.abv
FROM `beer-sample` beers
INNER JOIN `beer-sample` breweries
ON KEYS beers.brewery_id
WHERE beers.type = "beer" AND
breweries.type = "brewery" AND
beers.name = "Tactical Nuclear Penguin";
Trouvez plus de stouts impériales de style américain.
SELECT breweries.name AS brewery, beers.name AS beer,
beers.abv
FROM `beer-sample` beers
INNER JOIN `beer-sample` breweries
ON KEYS beers.brewery_id
WHERE beers.type = "beer" AND
breweries.type = "brewery" AND
beers.style = "American-Style Imperial Stout"
ORDER BY brewery, beer LIMIT 10;
Recherchez les brasseries qui ont commercialisé plus de trois stouts impériales de style américain.
SELECT breweries.name AS brewery, count(*) AS cnt
FROM `beer-sample` beers
INNER JOIN `beer-sample` breweries
ON KEYS beers.brewery_id
WHERE beers.type = "beer" AND
breweries.type = "brewery" AND
beers.style = "American-Style Imperial Stout"
GROUP BY breweries.name
HAVING count(*) > 2
ORDER BY cnt DESC;
Copiez et collez la requête dans l’invite cbq, puis appuyez sur Entrée.
Get (Sync)
JsonDocument myAirline = bucket.get("airline_5209");
Get (Async)
Observable<JsonDocument> myAirline = bucket.async().get("airline_5209"); // async using RxJava Observables!
Insert (Sync)
JsonObject passenger = JsonObject.empty()
.put("firstname", "Walter")
.put("lastname", "White");
JsonDocument stored = bucket.upsert(JsonDocument.create("walter", passenger));
Insert (Async)
JsonObject passenger = JsonObject.empty()
.put("firstname", "Walter")
.put("lastname", "White");
Observable<JsonDocument> stored = bucket.async().upsert(JsonDocument.create("walter", passenger));
Upsert (Sync)
JsonObject passenger = JsonObject.empty()
.put("firstname", "Walter")
.put("lastname", "White");
JsonDocument stored = bucket.upsert(JsonDocument.create("walter", passenger));
Upsert (Async)
JsonObject passenger = JsonObject.empty()
.put("firstname", "Walter")
.put("lastname", "White");
Observable<JsonDocument> stored = bucket.upsert(JsonDocument.create("walter", passenger));
Replace (Sync)
JsonObject passenger = JsonObject.empty()
.put("firstname", "Walter")
.put("lastname", "White");
JsonDocument replaced = bucket.replace(JsonDocument.create("walter", passenger));
Replace (Async)
JsonObject passenger = JsonObject.empty()
.put("firstname", "Walter")
.put("lastname", "White");
Observable<JsonDocument> walter2 = bucket.async().replace(JsonDocument.create("walter", passenger));
Query (String)
Observable<AsyncN1qlQueryResult> theAirline = bucket
.query(N1qlQuery
.simple("SELECT name FROM `travel-sample` AS Airline WHERE id = 5209"));
Query (fluent API)
Observable<AsyncN1qlQueryResult> theAirline = bucket
.async()
.query(N1qlQuery.simple(
select("name")
.from("travel-sample")
.as("Airline")
.where(x("id")
.eq(5209))));
Get (Sync)
var result = bucket.GetDocument("airline_5209");
Insert (Sync)
var passenger = new Document<string>() {
Firstname = "Walter",
Lastname = "White"
};
bucket.Insert(passenger);
Upsert (Sync)
var passenger = new Document<string>() {
Firstname = "Walter",
Lastname = "White"
};
bucket.Upsert(passenger);
Replace (Sync)
var passenger = new Document<string>() {
Firstname = "Walter",
Lastname = "White"
};
bucket.Replace(doc);
Query
var query = new QueryRequest("SELECT name FROM `travel-sample` AS Airline WHERE id = 5209");
Query (using LINQ)
var airlinesQuerySyntax
= (from fromAirport in ClusterHelper.GetBucket(CouchbaseConfigHelper.Instance.Bucket).Queryable<Airport>()
where fromAirport.Airportname == @from
select new { fromAirport = fromAirport.Faa, geo = fromAirport.Geo })
.ToList() // need to execute the first part of the select before call to Union
.Union<dynamic>(
from toAirport in ClusterHelper.GetBucket(CouchbaseConfigHelper.Instance.Bucket).Queryable<Airport>()
where toAirport.Airportname == to
select new { toAirport = toAirport.Faa, geo = toAirport.Geo });
Get Document
bucket.get("walter", function (err, resRead) {/* handle results */});
Insert
var key = "walter";
bucket.insert(key, {firstname: "Walter", lastname: "White"},function(err, res) {/* handle results */});
Upsert
var key = "walter";
bucket.upsert(key, {firstname: "Walter", lastname: "White"},function(err, res) {/* handle results */});
Replace
var key = "walter";
bucket.replace(key, {firstname: "Walter", lastname: "White"},function(err, res) {/* handle results */});
Query
var N1qlQuery = couchbase.N1qlQuery;
var query = N1qlQuery.fromString("SELECT name FROM `travel-sample` AS Airline WHERE id = 5209");
bucket.query(query,function(err,result){/* handle results */});
Get
$res = $myBucket->get(‘document_name’);
Insert
$res = $myBucket->insert('document_name', array('some'=>'value'));
Upsert
$res = $myBucket->upsert('document_name', array('some'=>'value'));
Replace
$res = $myBucket->replace('document_name', array('some'=>'value'));
Query
$myBucket->enableN1ql(array('http://1.1.1.1:8093/','http://1.1.1.2:8093/'));
$query = CouchbaseN1qlQuery::fromString('SELECT * FROM default');
Get
rv = bucket.get('document_name')
Insert
rv = bucket.insert('document_name', {'some': 'value'})
Upsert
rv = bucket.upsert('document_name', {'some': 'value'})
Replace
rv = bkt.replace('document_name', {'some':'newvalue'}
Query (Simple)
for row in bkt.n1ql_query('SELECT * FROM default'):
Query (Placeholders)
q = N1QLQuery('SELECT fname, lname, age FROM default WHERE age > $age', age=22)
for row in bkt.n1ql_query(q):
Get
cas, err := myBucket.Get("document_name", &myValue)
Insert
err, cas := myBucket.Insert("document_name", &myDoc, 0)
Upsert
err, cas := myBucket.Upsert("document_name", &myDoc, 0)
Replace
cas, err := myBucket.Replace("document_name", &testValue, 0, 0)
Query
myQuery := gocb.NewN1qlQuery("SELECT * FROM default")
rows, err := myBucket.ExecuteN1qlQuery(myQuery)
Use Cases
-
Spark Examples (Scala/Java)
Lecture, Écriture, Requête, Flux -
Touchbase (Node.js)
Lecture, Écriture, RequêteExpress, AngularJS, BootstrapAngular Material
Familiarisez-vous en toute sérénité avec NoSQL, Couchbase Server et Couchbase Mobile en suivant des cours en ligne gratuits à votre propre rythme.
Principes de base de la gestion de données NoSQL
Informez-vous sur l’adoption de NoSQL, sur les besoins des charges de travail opérationnelles par rapport aux charges de travail analytiques et découvrez comment le mouvement NoSQL a pris l’ascendant sur les systèmes relationnels traditionnels pour gérer l’explosion de données avec une architecture axée sur le cloud, plus souple.
L’essentiel de la technologie Couchbase NoSQL
Découvrez l’approche flexible et évolutive de Couchbase en matière d’architecture de base de données, ainsi que sa façon de stocker et organiser les données, de lire et écrire les documents, de gérer sa topologie, de répliquer et sécuriser les données, de s’intégrer aux autres systèmes et de prendre en charge le développement d’applications mobiles et web.
Introduction au langage de requête N1QL pour les spécialistes SQL
Exploitez vos compétences SQL existantes ou commencez à zéro : grâce à ce cours, mettez-vous à la page en matière d’interrogation et d’indexation de bases de données de documents NoSQL. N1QL permet aux utilisateurs de bénéficier de la souplesse de JSON et ouvre tout un monde de nouvelles techniques pour concevoir des applications extrêmement performantes.
Introduction au développement d’applications NoSQL (Java)
Le cours et les laboratoires pratiques orientent rapidement les participants vers le SDK Java, notamment en ce qui concerne la représentation des documents, la dé/sérialisation, les opérations « CRUD » synchrones, l’exécution de requêtes N1QL, les compteurs atomiques à l’échelle d’un cluster et le verrouillage optimiste.
Introduction aux applications Couchbase Mobile NoSQL (iOS)
Ce cours et les laboratoires pratiques iOS familiarisent les participants aux opérations CRUD de base, à la réplication, à la synchronisation et à l’authentification pour les applications mobiles, sans oublier la fonctionnalité « always-on » (toujours disponible) qui est activée uniquement par Couchbase Mobile.
Introduction aux applications Couchbase Mobile NoSQL (Android)
Ce cours et les laboratoires pratiques Android familiarisent les participants aux opérations CRUD de base, à la réplication, à la synchronisation et à l’authentification pour les applications mobiles, sans oublier la fonctionnalité « always-on » (toujours disponible) qui est activée uniquement par Couchbase Mobile.
Formation Couchbase
Assistance Couchbase
Assistance de la communauté
Get started in a few easy steps and join the NoSQL movement today!