All Downloads are FREE. Search and download functionalities are using the official Maven repository.

goja.rapid.mongo.MongoKit Maven / Gradle / Ivy

The newest version!
package goja.rapid.mongo;

import com.beust.jcommander.internal.Lists;

import com.jfinal.plugin.activerecord.Record;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

import java.util.List;
import java.util.Map;
import java.util.Set;

import org.bson.Document;
import org.bson.types.ObjectId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 

* * @author sog * @version 1.0 * @since JDK 1.6 */ public class MongoKit { protected static Logger logger = LoggerFactory.getLogger(MongoKit.class); private static MongoClient client; private static DB defaultDb; public static void init(MongoClient client, String database) { MongoKit.client = client; MongoKit.defaultDb = client.getDB(database); } public static void updateFirst(String collectionName, MongoQuery q, MongoQuery o) { MongoKit.getCollection(collectionName).findAndModify(q.get(), o.get()); } public static int removeAll(String collectionName) { return MongoKit.getCollection(collectionName).remove(new BasicDBObject()).getN(); } public static int remove(String collectionName, MongoQuery q) { return MongoKit.getCollection(collectionName).remove(q.get()).getN(); } public static int save(String collectionName, List querys) { List objs = Lists.newArrayList(); for (MongoQuery query : querys) { objs.add(query.get()); } return MongoKit.getCollection(collectionName).insert(objs).getN(); } public static int save(String collectionName, MongoQuery q) { return MongoKit.getCollection(collectionName).save(q.get()).getN(); } public static int save(String collectionName, Record record) { return MongoKit.getCollection(collectionName).save(toDbObject(record)).getN(); } public static Record findFirst(String collectionName) { return toRecord(MongoKit.getCollection(collectionName).findOne()); } //根据ID查找 public static List findById(String collectionName, String id) { DBCollection c = MongoKit.getCollection(collectionName); return c.find(new BasicDBObject("_id", new ObjectId(id))).toArray(); } //根据条件对象查找 public static List findByQuery(String collectionName, MongoQuery query) { DBCollection c = MongoKit.getCollection(collectionName); return c.find(query.get()).toArray(); } //根据条件对象查找并只要多少数量 public static List findByQuery(String collectionName, MongoQuery query, int limit) { DBCollection c = MongoKit.getCollection(collectionName); return c.find(query.get()).limit(limit).toArray(); } //根据条件对象查找并只要多少数量和根据什么排序 public static List findByQuery(String collectionName, MongoQuery query, int limit, BasicDBObject b) { DBCollection c = MongoKit.getCollection(collectionName); return c.find(query.get()).limit(limit).sort(b).toArray(); } //根据条件对象查找并删除 public static DBObject findAndRemove(String collectionName, MongoQuery query) { DBCollection c = MongoKit.getCollection(collectionName); return c.findAndRemove(query.get()); } @SuppressWarnings("unchecked") public static Record toRecord(DBObject dbObject) { Record record = new Record(); record.setColumns(dbObject.toMap()); return record; } public static DB getDB() { return defaultDb; } public static MongoDatabase getDB(String dbName) { return client.getDatabase(dbName); } public static DBCollection getCollection(String name) { return defaultDb.getCollection(name); } public static MongoCollection getDBCollection(String dbName, String collectionName) { return getDB(dbName).getCollection(collectionName); } public static MongoClient getClient() { return client; } private static BasicDBObject toDBObject(Map map) { BasicDBObject dbObject = new BasicDBObject(); Set> entrySet = map.entrySet(); for (Map.Entry entry : entrySet) { String key = entry.getKey(); Object val = entry.getValue(); dbObject.append(key, val); } return dbObject; } private static BasicDBObject toDbObject(Record record) { BasicDBObject object = new BasicDBObject(); for (Map.Entry e : record.getColumns().entrySet()) { object.append(e.getKey(), e.getValue()); } return object; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy