背景:
mongodb库开发过程中,运维只给提供了admin库账号授权,又不想在每个库操作库上面建立账号
代码方式:
package com.navinfo.onemap.realtime.utils;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import org.apache.storm.mongodb.common.MongoDbClient;
import org.bson.Document;
import java.util.ArrayList;
import java.util.List;
public class MongodbTest {
public static void main(String[] args) {
//如果密码含有特殊字符 urlencoding一下
MongoDbClient mongoClient = new MongoDbClient("mongodb://root:root%2b%2b@[10.130.10.17:30000]/db-test?authSource=admin", "collection-test");
Document document = new Document();
document.append("name", "test");
List<Document> documentList = new ArrayList<>();
documentList.add(document);
mongoClient.insert(documentList, false);
}
}
spring boot方式
spring yml配置文件添加
spring:
data:
mongodb:
uri: mongodb://root:root++@10.130.10.17:30000
authentication-database: admin
database: db-test