带用户和密码的访问mongodb
一般在公司去访问mongodb都是需要用户和密码,网上大部分都是直接连接自己的数据库,所以有无密码都无所谓,在这里记录一下通过用户密码有权限的访问数据库(mongodb)
1、python连接mongodb
#导入需要的模块,若没有需要去pip在线下载“pymongo”
from pymongo import MongoClient
user = 'root'
pwd = '123456'
host = '192.168.128.110'
port = '27017'
db_name = 'database_test'
uri = "mongodb://%s:%s@%s" % (user, pwd, host + ":" + port + "/" + db_name)
#连接数据库
client = MongoClient(uri)
db = client[db_name]
data = db['test'] #导入对应的表,这里是“test”表
# 读取对应的键值对,根据key读取value,这里读取了keyWord、grade对应的值,每次读取都会带着对应的“_id”
for i indata.find({},{"keyWord":1,"grade":1}):
print(i)
结果:
2、JAVA连接Mongodb
使用idea编辑器
添加Maven
Mongo的Maven
<dependency> |
使用到的包:
import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.ServerAddress; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; import java.util.Arrays; |
代码:
public class connectMongodb {
public static void main(String args[]){
MongoClient client = null;
try {
// 用户名 数据库 密码
MongoCredential credential = MongoCredential.createCredential("test", "database_test", "123456".toCharArray());
//IP、port
ServerAddress addr = new ServerAddress("192.168.128.110", 27017);
client = new MongoClient(addr, Arrays.asList(credential));
//得到数据库
MongoDatabase mdb = client.getDatabase("database_test");
//得到Table
MongoCollection<Document> table = mdb.getCollection("testdb");
//查询所有
FindIterable<Document> fi = table.find();
//遍历结果
int num =0; //控制输出次数,如果想全部取出来则删掉这行
for (Document o : fi) {
num +=1;
//指定获取的值,例如这里获取contentClean下的内容
Object rr = o.getOrDefault("contentClean","-1");
// contentClean的内容太多回车空格符号了
String resull = rr.toString().replace("\n","").replace("\t","");
System.out.println(resull);
System.out.println();
if (num == 3)break; //控制输出次数,如果想全部取出来则删掉这行
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (client != null) {
client.close();
}
}
}
}
3、Scala连接MongoDB
import com.mongodb.{MongoCredential, ServerAddress}
import com.mongodb.casbah.MongoClient
import com.mongodb.casbah.commons.MongoDBObject
object similerContext {
def main(args:Array[String]):Unit = {
val server = new ServerAddress("ip地址", 端口)
//这里是远程连接,所以需要“loginName, dbName, password.toCharArray”
val credentials = MongoCredential.createCredential("test", "database_test", "123456".toCharArray())
val mongoClient = MongoClient(server, List(credentials))
//库
val db = mongoClient("database_test")
//表
val coll = db("test")
//获取想取的数据,这里取出所有Key为“name”的值
val res = coll.find()
for(a<-res){
println(a.get("name"))
}
//获取包含某个固定值,这里取name为八百余天的整条数据
val res = coll.find(MongoDBObject("name" -> "八百余天"))
res.foreach(println)
}
}