大数据课堂

MongDB在安装过程中出现的一个问题(Unit mongod.service not found)(Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed

在按照林子雨老师网站安装过程中
自己一不小心把MongoDB的步骤弄错了 然后从头安装一遍 

sudo service mongod start
报错:
Unit mongod.service not found.

mongo
报错:
MongoDB shell version: 3.2.19
connecting to: test
2018-04-18T10:45:08.995+0800 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: errno:111 Connection refused
2018-04-18T10:45:08.996+0800 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:229:14
@(conne5ct):1:6

错误的原因是安装上了Mongo 的shell  没有安装上  Mongo   的 Service   解决办法 :重安装

sudo apt-get install mongodb
 
sudo  apt install mongodb-server

 

MongoDB使用

sudo service mongodb start

pgrep mongo -l
978 mongod

mongo
MongoDB shell version: 2.6.10
connecting to: test

show dbs
School  0.078GB
admin   (empty)
local   0.078GB

use School
switched to db School

show collections
system.indexes
> db.createCollection('teacher')
{ "ok" : 1 }

> db.createCollection('student')
{ "ok" : 1 }

> db.student.insert({_id:1, sname: 'zhangsan', sage: 20})
WriteResult({ "nInserted" : 1 })

> db.student.save({_id:1, sname: 'zhangsan', sage: 22})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.student.find()
{ "_id" : 1, "sname" : "zhangsan", "sage" : 22 }
> s= [{sname:'lisi',sage:20},{sname:'wangwu',sage:20},{sname:'chenliu',sage:22}]

[
    {
        "sname" : "lisi",
        "sage" : 20
    },
    {
        "sname" : "wangwu",
        "sage" : 20
    },
    {
        "sname" : "chenliu",
        "sage" : 22
    }
]
> db.student.insert(s)
BulkWriteResult({
    "writeErrors" : [ ],
    "writeConcernErrors" : [ ],
    "nInserted" : 3,
    "nUpserted" : 0,
    "nMatched" : 0,
    "nModified" : 0,
    "nRemoved" : 0,
    "upserted" : [ ]
})
> db.student.find()
{ "_id" : 1, "sname" : "zhangsan", "sage" : 22 }
{ "_id" : ObjectId("5adeeaad949cd9c3aaf74597"), "sname" : "lisi", "sage" : 20 }
{ "_id" : ObjectId("5adeeaad949cd9c3aaf74598"), "sname" : "wangwu", "sage" : 20 }
{ "_id" : ObjectId("5adeeaad949cd9c3aaf74599"), "sname" : "chenliu", "sage" : 22 }
> db.student.find().pretty()
{ "_id" : 1, "sname" : "zhangsan", "sage" : 22 }
{
    "_id" : ObjectId("5adeeaad949cd9c3aaf74597"),
    "sname" : "lisi",
    "sage" : 20
}
{
    "_id" : ObjectId("5adeeaad949cd9c3aaf74598"),
    "sname" : "wangwu",
    "sage" : 20
}
{
    "_id" : ObjectId("5adeeaad949cd9c3aaf74599"),
    "sname" : "chenliu",
    "sage" : 22
}
查找数据
db.youCollection.find(criteria, filterDisplay)

> db.student.find({sname: 'lisi'})
{ "_id" : ObjectId("5adeeaad949cd9c3aaf74597"), "sname" : "lisi", "sage" : 20 }

> db.student.find({},{sname:1, sage:1})
{ "_id" : 1, "sname" : "zhangsan", "sage" : 22 }
{ "_id" : ObjectId("5adeeaad949cd9c3aaf74597"), "sname" : "lisi", "sage" : 20 }
{ "_id" : ObjectId("5adeeaad949cd9c3aaf74598"), "sname" : "wangwu", "sage" : 20 }
{ "_id" : ObjectId("5adeeaad949cd9c3aaf74599"), "sname" : "chenliu", "sage" : 22 }

> db.student.find({sname: 'zhangsan', sage: 22})
{ "_id" : 1, "sname" : "zhangsan", "sage" : 22 }

> db.student.find({$or: [{sage: 22}, {sage: 25}]})
{ "_id" : 1, "sname" : "zhangsan", "sage" : 22 }
{ "_id" : ObjectId("5adeeaad949cd9c3aaf74599"), "sname" : "chenliu", "sage" : 22 }
> db.student.update({sname: 'lisi'}, {$set: {sage: 30}}, false, true)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.student.remove({sname: 'chenliu'})
WriteResult({ "nRemoved" : 1 })

db.student.drop()

输入exit或者Ctrl+C退出shell命令模式

MongoDB(JavaAPI)

第一步:下载Java MongoDB Driver驱动jar包,Java MongoDB Driver下载地址,默认的下载目录~/下载或者~/Downloads
第二步:打开Eclipse,新建Java Project,新建Class,引入刚刚下载的jar包
第三步:编码实现
下面以School数据库为例,执行集合student的增删改查操作,如果没有School数据库和student集合请先创建,以下是源代码:
    import java.util.ArrayList;
    import java.util.List;
     
    import org.bson.Document;
    import com.mongodb.MongoClient;
    import com.mongodb.client.MongoCollection;
    import com.mongodb.client.MongoCursor;
    import com.mongodb.client.MongoDatabase;
    import com.mongodb.client.model.Filters;
     
    public class TestMongoDB {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
    //      insert();//插入数据。执行插入时,可将其他三句函数调用语句注释,下同
            find(); //查找数据
    //      update();//更新数据
    //      delete();//删除数据
        }
        /**
         * 返回指定数据库中的指定集合
         * @param dbname 数据库名
         * @param collectionname 集合名
         * @return
         */
        //MongoDB无需预定义数据库和集合,在使用的时候会自动创建
        public static MongoCollection<Document> getCollection(String dbname,String collectionname){
            //实例化一个mongo客户端,服务器地址:localhost(本地),端口号:27017
            MongoClient  mongoClient=new MongoClient("localhost",27017);
            //实例化一个mongo数据库
            MongoDatabase mongoDatabase = mongoClient.getDatabase(dbname);
            //获取数据库中某个集合
            MongoCollection<Document> collection = mongoDatabase.getCollection(collectionname);
            return collection;
        }
        /**
         * 插入数据
         */
        public static void insert(){
            try{
                //连接MongoDB,指定连接数据库名,指定连接表名。
                MongoCollection<Document> collection= getCollection("School","student");    //数据库名:School 集合名:student
                //实例化一个文档,文档内容为{sname:'Mary',sage:25},如果还有其他字段,可以继续追加append
                Document doc1=new Document("sname","Mary").append("sage", 25);
                //实例化一个文档,文档内容为{sname:'Bob',sage:20}
                Document doc2=new Document("sname","Bob").append("sage", 20);
                List<Document> documents = new ArrayList<Document>(); 
                //将doc1、doc2加入到documents列表中
                documents.add(doc1); 
                documents.add(doc2); 
                //将documents插入集合
                collection.insertMany(documents);  
                System.out.println("插入成功"); 
            }catch(Exception e){
                System.err.println( e.getClass().getName() + ": " + e.getMessage() );
            }
        }
        /**
         * 查询数据
         */
        public static void find(){
            try{
                MongoCollection<Document> collection = getCollection("School","student");  //数据库名:School 集合名:student
                //通过游标遍历检索出的文档集合 
    //          MongoCursor<Document>  cursor= collection.find(new Document("sname","Mary")). projection(new Document("sname",1).append("sage",1).append("_id", 0)).iterator();   //find查询条件:sname='Mary'。projection筛选:显示sname和sage,不显示_id(_id默认会显示)
                //查询所有数据
                MongoCursor<Document>  cursor= collection.find().iterator();
                while(cursor.hasNext()){
                    System.out.println(cursor.next().toJson());
                }
            }catch(Exception e){
                System.err.println( e.getClass().getName() + ": " + e.getMessage() );
            }
        }
        /**
         * 更新数据
         */
        public static void update(){
            try{
                MongoCollection<Document> collection = getCollection("School","student");  //数据库名:School 集合名:student
                 //更新文档   将文档中sname='Mary'的文档修改为sage=22   
                 collection.updateMany(Filters.eq("sname", "Mary"), new Document("$set",new Document("sage",22)));  
                 System.out.println("更新成功!");
            }catch(Exception e){
                System.err.println( e.getClass().getName() + ": " + e.getMessage() );
            }
        }
        /**
         * 删除数据
         */
        public static void delete(){
            try{
                MongoCollection<Document> collection = getCollection("School","student");  //数据库名:School 集合名:student
                    //删除符合条件的第一个文档  
                collection.deleteOne(Filters.eq("sname", "Bob"));  
                //删除所有符合条件的文档  
                //collection.deleteMany (Filters.eq("sname", "Bob"));
                System.out.println("删除成功!");
            }catch(Exception e){
                System.err.println( e.getClass().getName() + ": " + e.getMessage() );
            }
        }
    }

 课后作业

hadoop@hadoop-GL502VML:~$ mongo
MongoDB shell version: 2.6.10
connecting to: test
> use Project
switched to db Project
> db.createCollection('menber')
{ "ok" : 1 }

> n=[{name:'朱家丰',Title:'MINSt手写数字识别',Details:{assignment:'数据处理',weight:4,score:8}},{name:'蒋纪瑶',Title:'MINST手写数字识别',Details:{assignment:'数据收集',weight:3,score:8}},{name:'徐志伟',Title:'MINSt手写数字识别',Details:{assignment:'算法构建',weight:3,score:8}}]
[
    {
        "name" : "朱家丰",
        "Title" : "MINSt手写数字识别",
        "Details" : {
            "assignment" : "数据处理",
            "weight" : 4,
            "score" : 8
        }
    },
    {
        "name" : "蒋纪瑶",
        "Title" : "MINST手写数字识别",
        "Details" : {
            "assignment" : "数据收集",
            "weight" : 3,
            "score" : 8
        }
    },
    {
        "name" : "徐志伟",
        "Title" : "MINSt手写数字识别",
        "Details" : {
            "assignment" : "算法构建",
            "weight" : 3,
            "score" : 8
        }
    }
]
> db.menber.insert(n)
BulkWriteResult({
    "writeErrors" : [ ],
    "writeConcernErrors" : [ ],
    "nInserted" : 3,
    "nUpserted" : 0,
    "nMatched" : 0,
    "nModified" : 0,
    "nRemoved" : 0,
    "upserted" : [ ]
})
> db.menber.find().pretty()
{
    "_id" : ObjectId("5adf1c004aee463a389fc303"),
    "name" : "朱家丰",
    "Title" : "MINSt手写数字识别",
    "Details" : {
        "assignment" : "数据处理",
        "weight" : 4,
        "score" : 8
    }
}
{
    "_id" : ObjectId("5adf1c004aee463a389fc304"),
    "name" : "蒋纪瑶",
    "Title" : "MINST手写数字识别",
    "Details" : {
        "assignment" : "数据收集",
        "weight" : 3,
        "score" : 8
    }
}
{
    "_id" : ObjectId("5adf1c004aee463a389fc305"),
    "name" : "徐志伟",
    "Title" : "MINSt手写数字识别",
    "Details" : {
        "assignment" : "算法构建",
        "weight" : 3,
        "score" : 8
    }
}

 

127.0.0.1       localhost
127.0.1.1       hadoop-GL502VML
192.168.145.219   Master
192.168.145.140   Slave2
172.19.77.75    Slave3
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

 

posted @ 2018-04-24 16:27  朱小丰的丰  阅读(253)  评论(0编辑  收藏  举报