远程连接Mongodb

2 篇文章 0 订阅
1 篇文章 0 订阅

带用户和密码的访问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>
   
<groupId>org.mongodb</groupId>
   
<artifactId>casbah-core_2.10</artifactId>
   
<version>3.1.1</version>
</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)
 }
}



  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值