Java tutorial
/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.storm.mongodb.common; import java.util.List; import org.bson.Document; import org.bson.conversions.Bson; import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.InsertManyOptions; import com.mongodb.client.model.UpdateOptions; public class MongoDBClient { private MongoClient client; private MongoCollection<Document> collection; public MongoDBClient(String url, String collectionName) { //Creates a MongoURI from the given string. MongoClientURI uri = new MongoClientURI(url); //Creates a MongoClient described by a URI. this.client = new MongoClient(uri); //Gets a Database. MongoDatabase db = client.getDatabase(uri.getDatabase()); //Gets a collection. this.collection = db.getCollection(collectionName); } /** * Inserts one or more documents. * This method is equivalent to a call to the bulkWrite method. * The documents will be inserted in the order provided, * stopping on the first failed insertion. * * @param documents */ public void insert(List<Document> documents, boolean ordered) { InsertManyOptions options = new InsertManyOptions(); if (!ordered) { options.ordered(false); } collection.insertMany(documents, options); } /** * Update all documents in the collection according to the specified query filter. * When upsert set to true, the new document will be inserted if there are no matches to the query filter. * * @param filter * @param update * @param upsert */ public void update(Bson filter, Bson update, boolean upsert) { UpdateOptions options = new UpdateOptions(); if (upsert) { options.upsert(true); } collection.updateMany(filter, update, options); } /** * Closes all resources associated with this instance. */ public void close() { client.close(); } }