Example usage for com.mongodb BasicDBObjectBuilder start

List of usage examples for com.mongodb BasicDBObjectBuilder start

Introduction

In this page you can find the example usage for com.mongodb BasicDBObjectBuilder start.

Prototype

public static BasicDBObjectBuilder start() 

Source Link

Document

Creates a builder intialized with an empty document.

Usage

From source file:org.jeo.mongo.MongoTestData.java

License:Open Source License

public void setUp(DBCollection dbcol, MongoWorkspace workspace) throws IOException {
    VectorDataset data = TestData.states();
    Schema schema = data.schema();

    for (Feature f : data.cursor(new Query())) {
        Geometry g = f.geometry();//from w w w .ja  v a 2s. co m
        g = Geom.iterate((MultiPolygon) f.geometry()).iterator().next();

        DBObject obj = new BasicDBObject(f.map());
        obj.put(schema.geometry().getName(), JSON.parse(GeoJSONWriter.toString(g)));
        dbcol.insert(obj);
    }

    dbcol.ensureIndex(BasicDBObjectBuilder.start().add(data.schema().geometry().getName(), "2dsphere").get());

    workspace.setMapper(new DefaultMapper(new Mapping().geometry("geometry")));
}

From source file:org.jeo.mongo.NestedTestData.java

License:Open Source License

@Override
public void setUp(DBCollection dbcol, MongoWorkspace workspace) throws IOException {
    VectorDataset data = TestData.states();

    for (Feature f : data.cursor(new Query())) {
        Geometry g = f.geometry();//w w  w. j av  a 2 s.c o m
        g = Geom.iterate((MultiPolygon) f.geometry()).iterator().next();

        DBObject obj = new BasicDBObject();

        DBObject geo = new BasicDBObject();
        geo.put("shape", GeoJSON.toObject(g));
        geo.put("center", GeoJSON.toObject(g.getCentroid()));
        obj.put("geo", geo);

        obj.put("STATE_NAME", f.get("STATE_NAME"));
        obj.put("STATE_ABBR", f.get("STATE_ABBR"));

        DBObject pop = new BasicDBObject();
        pop.put("total", f.get("SAMP_POP"));
        pop.put("male", f.get("P_MALE"));
        pop.put("female", f.get("P_FEMALE"));
        obj.put("pop", pop);

        dbcol.insert(obj);
    }

    dbcol.ensureIndex(BasicDBObjectBuilder.start().add("geo.shape", "2dsphere").get());

    Mapping mapping = new Mapping().geometry("geo.shape").geometry("geo.center");
    workspace.setMapper(new DefaultMapper(mapping));
}

From source file:org.mongodb.demos.binary.JsonDemo.java

License:Apache License

/**
 * Create a new employee and set the picture inside the Document
 *   - data are store as bytes//from  w  w w .ja  va  2s  .c o m
 * @param firstName
 * @param lastName
 * @param picture
 * @throws Exception
 */
public void insertEmployee(String id, String firstName, String lastName, String picture) throws Exception {
    System.out.println("\n== ==  WRITE TO MONGODB  == == == ");

    // Pure DBObject approach
    DBObject emp = BasicDBObjectBuilder.start().add("_id", id).add("first_name", firstName)
            .add("last_name", lastName).get();
    System.out.println(emp);

    // import an image
    byte[] imageAsBytes = extractBytes(picture);
    emp.put("image", imageAsBytes);

    // save data in the collection
    fooCollection.save(emp);
    System.out.println("\n== == == == == ");
}

From source file:org.mongodb.demos.obj.MyAppDriver.java

License:Apache License

private void insertPersons() {
    List<DBObject> addresses = new ArrayList<>();

    DBObject address = BasicDBObjectBuilder.start().add("city", "Paris").add("street", "Rue de la Paix")
            .add("zip_code", "75015").get();
    addresses.add(address);//from   www  .j a  v  a 2 s .  c om

    DBObject person = BasicDBObjectBuilder.start().add("first_name", "John").add("last_name", "Doe")
            .add("addresses", addresses).add("age", 35).get();

    fooCollection.insert(person);

    person = BasicDBObjectBuilder.start().add("first_name", "Jane").add("last_name", "Owy").add("age", 32)
            .get();

    fooCollection.insert(person);

}

From source file:org.mongodb.demos.replication.RetryDemo.java

License:Apache License

public static void main(String args[]) throws Exception {

    //TODO : See https://gist.github.com/tgrall/954aa021ba420639d614

    MongoClient client = new MongoClient(
            Arrays.asList(new ServerAddress("localhost", 27017), new ServerAddress("localhost", 27018)));

    DB db = client.getDB("jug");
    DBCollection coll = db.getCollection("bar");

    System.out.println("BEFORE");

    boolean loop = true;

    while (loop) {

        int backoff = 0, counter = 0;

        DBObject obj = null;//from  w  w w .j a v  a2 s .  c  o  m

        do {
            try {
                obj = BasicDBObjectBuilder.start().add("name", "mydoc").add("counter", counter++).get();
                //System.out.print("\t inserting...");
                coll.insert(obj, new WriteConcern(2, 3000, true, false));
                backoff = 0;
                // System.out.println(" OK : Document inserted...");
            } catch (Exception e) {
                System.out.println(e.toString());
                if (backoff == 3) {
                    throw new Exception("Tried 3 times... still failed");
                }

                backoff++;
                System.out.println("Waiting for " + backoff + "s");
                Thread.sleep(1500 * backoff);
            }

        } while (backoff != 0);

    }

    System.out.println("AFTER");

}

From source file:org.mongodb.demos.tailable.RealTimeInjector.java

License:Apache License

public static void main(String[] args) throws Exception {
    int counter = 0;
    while (counter <= 20) {
        Thread.sleep(2500);// w ww  .j a v  a 2  s .  c  o  m
        DBObject person = BasicDBObjectBuilder.start().add("status", "ok")
                .add("value", UUID.randomUUID().toString()).add("counter", counter++).get();
        coll.insert(person);
        System.out.println("Doc inserted " + counter);
    }
}

From source file:org.mongodb.workshop.api.ComicsService.java

License:Apache License

@GET
@Path("/search")
@ApiOperation(value = "Full text search on comics")
public DBObject search(@DefaultValue("1") @QueryParam("page") int page, @QueryParam("keyword") String keyword) {

    DBObject query = QueryBuilder.start().text(keyword).get();

    DBObject proj = BasicDBObjectBuilder.start().append("title", 1).append("description", 1).push("score")
            .append("$meta", "textScore").get();

    DBObject sort = BasicDBObjectBuilder.start().push("score").append("$meta", "textScore").get();

    long count = comicsCollection.count(query);
    int skip = ITEMS_PER_PAGE * (page - 1);

    DBCursor cursor = comicsCollection.find(query, proj).sort(sort).skip(skip).limit(ITEMS_PER_PAGE);

    List<DBObject> items = cursor.toArray(cursor.size());

    ResultDBObject result = new ResultDBObject(count, ITEMS_PER_PAGE, page, items);

    return result;
}

From source file:org.mongodb.workshop.api.ComicsService.java

License:Apache License

@GET
@Path("groupBy/price")
@ApiOperation(value = "Get the number of comics per price")
public DBObject[] aggregateByPrice() {

    DBObject step1 = new BasicDBObject("$unwind", "$prices");
    DBObject step2 = BasicDBObjectBuilder.start().push("$match").add("prices.type", "printPrice")
            .push("prices.price").add("$gt", 0).get();

    DBObject step3 = BasicDBObjectBuilder.start().push("$group").add("_id", "$prices.price").push("total")
            .append("$sum", 1).get();

    DBObject step4 = BasicDBObjectBuilder.start().push("$sort").add("_id", 1).get();

    List<DBObject> pipeline = Arrays.<DBObject>asList(step1, step2, step3, step4);

    AggregationOutput output = comicsCollection.aggregate(pipeline);
    List<DBObject> items = new ArrayList<DBObject>();

    for (DBObject item : output.results()) {
        items.add(item);//from   w ww  . j a  v a  2s  .  co m
    }

    return items.toArray(new DBObject[items.size()]);
}

From source file:org.mongoj.samples.service.persistence.CarPersistenceImpl.java

License:Open Source License

protected Car updateImpl(org.mongoj.samples.model.Car car) throws UpdateException, SystemException {
    DBCollection collection = getDB().getCollection(CarImpl.COLLECTION_NAME);

    if (car.isNew()) {
        car.setNew(false);/*from w w  w.  j  ava  2 s.com*/

        CarImpl carImpl = (CarImpl) car;

        carImpl.addMap.clear();
        carImpl.appendMap.clear();
        carImpl.removeMap.clear();
        carImpl.setMap.clear();

        WriteResult writeResult = collection.insert(getDBObject(car));

        String err = writeResult.getError();

        if (err != null) {
            throw new UpdateException(err);
        }
    } else {
        DBObject criteria = new QueryBuilder().put("_id").is(new ObjectId(car.getId())).get();

        CarImpl carImpl = (CarImpl) car;

        BasicDBObjectBuilder updateBuilder = BasicDBObjectBuilder.start();
        BasicDBObjectBuilder setUpdates = BasicDBObjectBuilder.start();
        BasicDBObjectBuilder pushUpdates = BasicDBObjectBuilder.start();
        BasicDBObjectBuilder pushAllUpdates = BasicDBObjectBuilder.start();
        BasicDBObjectBuilder addUpdates = BasicDBObjectBuilder.start();
        BasicDBObjectBuilder removeUpdates = BasicDBObjectBuilder.start();
        BasicDBObjectBuilder removeAllUpdates = BasicDBObjectBuilder.start();

        for (String field : carImpl.setMap.keySet()) {
            setUpdates = setUpdates.add(field, carImpl.setMap.get(field));
        }

        if (!setUpdates.isEmpty()) {
            updateBuilder.add(SET_OPERATOR, setUpdates.get());
        }

        for (String field : carImpl.appendMap.keySet()) {
            List<Object> list = (List<Object>) carImpl.appendMap.get(field);

            if (!list.isEmpty()) {
                if (list.size() == 1) {
                    pushUpdates = pushUpdates.add(field, ((List) carImpl.appendMap.get(field)).get(0));
                } else {
                    pushAllUpdates = pushAllUpdates.add(field, carImpl.appendMap.get(field));
                }
            }
        }

        if (!pushUpdates.isEmpty()) {
            updateBuilder.add(PUSH_OPERATOR, pushUpdates.get());
        }

        if (!pushAllUpdates.isEmpty()) {
            updateBuilder.add(PUSH_ALL_OPERATOR, pushAllUpdates.get());
        }

        for (String field : carImpl.addMap.keySet()) {
            List<Object> list = (List<Object>) carImpl.addMap.get(field);

            if (!list.isEmpty()) {
                if (list.size() == 1) {
                    addUpdates = addUpdates.add(field, ((List) carImpl.addMap.get(field)).get(0));
                } else {
                    DBObject each = BasicDBObjectBuilder.start()
                            .add(EACH_OPERATOR, ((List) carImpl.addMap.get(field)).toArray()).get();

                    addUpdates = addUpdates.add(field, each);
                }
            }
        }

        if (!addUpdates.isEmpty()) {
            updateBuilder.add(ADD_TO_SET_OPERATOR, addUpdates.get());
        }

        for (String field : carImpl.removeMap.keySet()) {
            List<Object> list = (List<Object>) carImpl.removeMap.get(field);

            if (!list.isEmpty()) {
                if (list.size() == 1) {
                    removeUpdates = removeUpdates.add(field, ((List) carImpl.removeMap.get(field)).get(0));
                } else {
                    removeAllUpdates = removeAllUpdates.add(field, carImpl.removeMap.get(field));
                }
            }
        }

        if (!removeUpdates.isEmpty()) {
            updateBuilder.add(PULL_OPERATOR, removeUpdates.get());
        }

        if (!removeAllUpdates.isEmpty()) {
            updateBuilder.add(PULL_ALL_OPERATOR, removeAllUpdates.get());
        }

        if (!updateBuilder.isEmpty()) {
            DBObject update = updateBuilder.get();

            _log.debug("Update query = {}", update);

            WriteResult writeResult = collection.update(criteria, update);

            String err = writeResult.getError();

            if (err != null) {
                throw new UpdateException(err);
            }
        }
    }

    return car;
}

From source file:org.mongoj.samples.service.persistence.UserPersistenceImpl.java

License:Open Source License

protected User updateImpl(org.mongoj.samples.model.User user) throws UpdateException, SystemException {
    DBCollection collection = getDB().getCollection(UserImpl.COLLECTION_NAME);

    if (user.isNew()) {
        user.setNew(false);/*from www.  j  av a 2s .c  o  m*/

        UserImpl userImpl = (UserImpl) user;

        userImpl.addMap.clear();
        userImpl.appendMap.clear();
        userImpl.removeMap.clear();
        userImpl.setMap.clear();

        WriteResult writeResult = collection.insert(getDBObject(user));

        String err = writeResult.getError();

        if (err != null) {
            throw new UpdateException(err);
        }
    } else {
        DBObject criteria = new QueryBuilder().put("_id").is(new ObjectId(user.getId())).get();

        UserImpl userImpl = (UserImpl) user;

        BasicDBObjectBuilder updateBuilder = BasicDBObjectBuilder.start();
        BasicDBObjectBuilder setUpdates = BasicDBObjectBuilder.start();
        BasicDBObjectBuilder pushUpdates = BasicDBObjectBuilder.start();
        BasicDBObjectBuilder pushAllUpdates = BasicDBObjectBuilder.start();
        BasicDBObjectBuilder addUpdates = BasicDBObjectBuilder.start();
        BasicDBObjectBuilder removeUpdates = BasicDBObjectBuilder.start();
        BasicDBObjectBuilder removeAllUpdates = BasicDBObjectBuilder.start();

        for (String field : userImpl.setMap.keySet()) {
            setUpdates = setUpdates.add(field, userImpl.setMap.get(field));
        }

        if (!setUpdates.isEmpty()) {
            updateBuilder.add(SET_OPERATOR, setUpdates.get());
        }

        for (String field : userImpl.appendMap.keySet()) {
            List<Object> list = (List<Object>) userImpl.appendMap.get(field);

            if (!list.isEmpty()) {
                if (list.size() == 1) {
                    pushUpdates = pushUpdates.add(field, ((List) userImpl.appendMap.get(field)).get(0));
                } else {
                    pushAllUpdates = pushAllUpdates.add(field, userImpl.appendMap.get(field));
                }
            }
        }

        if (!pushUpdates.isEmpty()) {
            updateBuilder.add(PUSH_OPERATOR, pushUpdates.get());
        }

        if (!pushAllUpdates.isEmpty()) {
            updateBuilder.add(PUSH_ALL_OPERATOR, pushAllUpdates.get());
        }

        for (String field : userImpl.addMap.keySet()) {
            List<Object> list = (List<Object>) userImpl.addMap.get(field);

            if (!list.isEmpty()) {
                if (list.size() == 1) {
                    addUpdates = addUpdates.add(field, ((List) userImpl.addMap.get(field)).get(0));
                } else {
                    DBObject each = BasicDBObjectBuilder.start()
                            .add(EACH_OPERATOR, ((List) userImpl.addMap.get(field)).toArray()).get();

                    addUpdates = addUpdates.add(field, each);
                }
            }
        }

        if (!addUpdates.isEmpty()) {
            updateBuilder.add(ADD_TO_SET_OPERATOR, addUpdates.get());
        }

        for (String field : userImpl.removeMap.keySet()) {
            List<Object> list = (List<Object>) userImpl.removeMap.get(field);

            if (!list.isEmpty()) {
                if (list.size() == 1) {
                    removeUpdates = removeUpdates.add(field, ((List) userImpl.removeMap.get(field)).get(0));
                } else {
                    removeAllUpdates = removeAllUpdates.add(field, userImpl.removeMap.get(field));
                }
            }
        }

        if (!removeUpdates.isEmpty()) {
            updateBuilder.add(PULL_OPERATOR, removeUpdates.get());
        }

        if (!removeAllUpdates.isEmpty()) {
            updateBuilder.add(PULL_ALL_OPERATOR, removeAllUpdates.get());
        }

        if (!updateBuilder.isEmpty()) {
            DBObject update = updateBuilder.get();

            _log.debug("Update query = {}", update);

            WriteResult writeResult = collection.update(criteria, update);

            String err = writeResult.getError();

            if (err != null) {
                throw new UpdateException(err);
            }
        }
    }

    return user;
}