不多说,直接上干货!

Ubuntu14.04下Mongodb(在线安装方式|apt-get)安装部署步骤(图文详解)(博主推荐)

shell命令模式

  输入mongo进入shell命令模式,默认连接的数据库是test数据库,在此之前一定要确保你已经启动了MongoDB,否则会出现错误,启动之后运行成功,如下截图:

root@zhouls-virtual-machine:~# mongo
MongoDB shell version: 2.4.
connecting to: test
>

  或者以这种方式来连接

root@zhouls-virtual-machine:~# mongo 192.168.80.31:/admin -u root -p root
MongoDB shell version: 2.4.
connecting to: 192.168.80.31:/admin
>

mongo常用操作命令:

  数据库相关 (这只是部分而已)

show dbs:显示数据库列表
show collections:显示当前数据库中的集合(类似关系数据库中的表table)
show users:显示所有用户
use yourDB:切换当前数据库至yourDB
db.help() :显示数据库操作命令
db.yourCollection.help() :显示集合操作命令,yourCollection是集合名

   注意:MongoDB没有创建数据库的命令,如果你想创建一个“School”的数据库,先运行use School命令,之后做一些操作(如:创建聚集集合db.createCollection('teacher')),这样就可以创建一个名叫“School”的数据库。截图如下:

root@zhouls-virtual-machine:~# mongo 192.168.80.31:/admin -u root -p root
MongoDB shell version: 2.4.
connecting to: 192.168.80.31:/admin
> show dbs
admin .203125GB
local .078125GB
test .203125GB
> use school
switched to db school
> db.createCollection('teacher')
{ "ok" : }
> show dbs
admin .203125GB
local .078125GB
school .203125GB
test .203125GB
>

  

  下面以一个School数据库为例,在School数据库中创建两个集合teacher和student,并对student集合中的数据进行增删改查基本操作(集合Collection相当于关系型数据库中的表table)。

1、切换到School数据库

use School     #切换到School数据库。MongoDB 无需预创建School数据库,在使用时会自动创建

  刚上面,我已经创建好了。

2、创建Collection

db.createCollection('teacher')       #创建一个聚集集合。MongoDB 其实在插入数据的时候,也会自动创建对应的集合,无需预定义集合

  刚上面,我已经创建好了。

  

> show collections
system.indexes
teacher
>

  这样就显示,在teacher数据库里,创建集合(即关系型数据库里叫表),成功!

3、插入数据 
  与数据库创建类似,插入数据时也会自动创建集合(即关系型数据库里的表)。 
  插入数据有两种方式:insert和save。

db.student.insert({_id:, sname: 'zhangsan', sage: })       #_id可选
db.student.save({_id:, sname: 'zhangsan', sage: })        #_id可选

  这两种方式,其插入的数据中_id字段均可不写,会自动生成一个唯一的_id来标识本条数据。

  而insert和save不同之处在于:在手动插入_id字段时,如果_id已经存在,insert不做操作,save做更新操作;如果不加_id字段,两者作用相同都是插入数据。

  截图如下:  

> db.student.insert({_id:, sname: 'zhangsan', sage: })
> db.student.find()
{ "_id" : , "sname" : "zhangsan", "sage" : }
> db.student.save({_id:, sname: 'zhangsan', sage: })
> db.student.find()
{ "_id" : , "sname" : "zhangsan", "sage" : }
> db.student.insert({_id:, sname: 'zhangsan', sage: })
E11000 duplicate key error index: school.student.$_id_ dup key: { : 1.0 }
> db.student.find()
{ "_id" : , "sname" : "zhangsan", "sage" : }
>

  添加的数据其结构是松散的,只要是bson格式均可,列属性均不固定,根据添加的数据为准。先定义数据,再插入,就可以一次性插入多条数据,截图如下:

> s = [{sname:'lisi',sage:},{sname:'wangwu',sage:},{sname:'chenliu',sage:}]
[
{
"sname" : "lisi",
"sage" :
},
{
"sname" : "wangwu",
"sage" :
},
{
"sname" : "chenliu",
"sage" :
}
]
> db.student.insert(s)
> db.student.find()
{ "_id" : , "sname" : "zhangsan", "sage" : }
{ "_id" : ObjectId("59316b5eaf2276c698170fae"), "sname" : "lisi", "sage" : }
{ "_id" : ObjectId("59316b5eaf2276c698170faf"), "sname" : "wangwu", "sage" : }
{ "_id" : ObjectId("59316b5eaf2276c698170fb0"), "sname" : "chenliu", "sage" : }
>

  运行完以上例子,student集合已自动创建,这也说明 MongoDB 不需要预先定义 collection ,在第一次插入数据后,collection 会自动的创建。截图如下:

> show collections
student
system.indexes
teacher
>

4、查找数据 
db.youCollection.find(criteria, filterDisplay) 
criteria :查询条件,可选 
filterDisplay:筛选显示部分数据,如显示指定列数据,可选(当选择时,第一个参数不可省略,若查询条件为空,可用{}做占位符,如下例第三句

db.student.find()    #查询所有记录。相当于:select * from student
db.student.find({sname: 'lisi'})     #查询sname='lisi'的记录。相当于: select * from student where sname='lisi'
db.student.find({},{sname:, sage:})     #查询指定列sname、sage数据。相当于:select sname,sage from student。sname:1表示返回sname列,默认_id字段也是返回的,可以添加_id:(意为不返回_id)写成{sname: , sage: ,_id:},就不会返回默认的_id字段了
db.student.find({sname: 'zhangsan', sage: })     #and 与条件查询。相当于:select * from student where sname = 'zhangsan' and sage =
db.student.find({$or: [{sage: }, {sage: }]})     #or 条件查询。相当于:select * from student where sage = or sage =

  查询操作类似,这里只给出db.student.find({sname: 'lisi'})查询的截图,如下:

> db.student.find({sname: 'lisi'})
{ "_id" : ObjectId("59316b5eaf2276c698170fae"), "sname" : "lisi", "sage" : }
>

5、修改数据 
db.youCollection.update(criteria, objNew, upsert, multi ) 
criteria: update的查询条件,类似sql update查询内where后面的 
objNew : update的对象和一些更新的操作符(如$set)等,也可以理解为sql update查询内set后面的。 
upsert : 如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。 
multi: mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。默认false,只修改匹配到的第一条数据。 
其中criteria和objNew是必选参数,upsert和multi可选参数

举例如下:

db.student.update({sname: 'lisi'}, {$set: {sage: }}, false, true)     #相当于:update student set sage = where sname = 'lisi';

> db.student.find({sname: 'lisi'})
{ "_id" : ObjectId("59316b5eaf2276c698170fae"), "sname" : "lisi", "sage" : }
> db.student.update({sname: 'lisi'}, {$set: {sage: }}, false, true)
> db.student.find({sname: 'lisi'})
{ "_id" : ObjectId("59316b5eaf2276c698170fae"), "sname" : "lisi", "sage" : }
>

6、删除数据

db.student.remove({sname: 'chenliu'})     #相当于:delete from student where sname='chenliu'

> db.student.find()
{ "_id" : , "sname" : "zhangsan", "sage" : }
{ "_id" : ObjectId("59316b5eaf2276c698170fae"), "sname" : "lisi", "sage" : }
{ "_id" : ObjectId("59316b5eaf2276c698170faf"), "sname" : "wangwu", "sage" : }
{ "_id" : ObjectId("59316b5eaf2276c698170fb0"), "sname" : "chenliu", "sage" : }
> db.student.remove({sname: 'chenliu'})
> db.student.find()
{ "_id" : , "sname" : "zhangsan", "sage" : }
{ "_id" : ObjectId("59316b5eaf2276c698170fae"), "sname" : "lisi", "sage" : }
{ "_id" : ObjectId("59316b5eaf2276c698170faf"), "sname" : "wangwu", "sage" : }
>

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

扩展学习

1、安装:

mongod -dbpath /home/xxlong/myInstall/mongodb_data

  默认是在

dbpath=/var/lib/mongodb

mongod 启动数据库进程

--dbpath 指定数据库的目录

--port 指定数据库的端口,默认是27017

--bind_ip 绑定ip

--directoryperdb 为每个db创建一个独立的子目录

--logpath 指定日志存放目录,默认是控制台

--auth 用安全认证方式启动数据库

--config 指定启动项用文件的路径

--fork 用守护进程的方式启动mongodb

--rest:是打开web监控页面,比如我们这里监听10001端口,则打开http://10.1.49.225:11001/就可以看到这个mongodb数据库进程的信息

关闭:1、ctrl+c 2、db.shutdownServer()

2、mongodb客户端工具:

mongo 127.0.0.1/27017/admin 不填,默认连接本机test数据库。

1、查看数据库

show dbs

2、创建数据库

use xxlong:系统自动创建一个数据库(xxlong)。如果use之后没有创建 任何集合。系统就会删除这个数据库。

3、给定数据库添加集合(student)并添加记录(insert)

db.[documentName].insert({...});

db.student.insert({_id:13,name:'Cat',sex:1,age:23,score:[60,71,81,91,100]});

批量增加:for(var i=1;i<10;i++){

db.student.insert({_id:i,name:'xxl',age:i});

}

insert在_id相同的时候会报错,而save则不报错,而是更新

db.student.save({_id:13,name:'xxlong'});

4、查看数据库中的所有集合

show collections;

5、查看定制文档的数据

db.student.find();查看所有数据

db.student.findOne();查看第一条数据

6、更新文档(相当于传统数据库的记录)数据

db.student.update({_id:10},{$set:{age:21}});id为10的文档的age改为21,$set表示有这个键则修改,没有这个键则增加

db.student.update({age:10},{$set:{sex:1}},true,true),这个true表示查到年龄为10则修改, 查不到则插入,false表示为查到则修改,查不到什么也不做,不写则默认为false(相当于

InsertOrUpdate);这个true表示批量增加(所有年龄为10,修改性别为1),false则不是批量增加,默认为false;

db.student.update({_id:10},{$inc:{age:1}});id为10的文档的age自动加1

db.student.update({_id:10},{$unset:{age:x}});删除id为10的文档的age字段,x为任意数字

db.student.update({_id:13},{$push:{score:[100,101]}});score数组中新增值100,101

如果score键不存在,则新增加这个键,必须为数组

db.student.update({_id:13},{$pop:{score:x}});删除数组中的值,x为1删除最后一个,x为-1 删除最前的一个

db.student.update({_id:3},{$pull:{course:"computer"}}); 删除数组course中的computer值(可以为多个computer值)

db.student.update({_id:3},{$pullAll:{course:["math","english"]}}); 删除数组中多个不同的值

db.student.update({_id:10},{$rename:{'age':'AGE'}});修改id为10的文档的age字段名

db.student.update({_id:3},{$set:{course:['math','computer']}})

db.student.update({_id:1},{$addToSet:{course:'math'}})结果:math,computer

db.student.update({_id:1},{$addToSet:{course:'english'}})结果:math,computer,english

addToSet:目标数组存在新增加的项则不增加,不存在则增加(数组中有math,computer,再update math时不增加,而update english时,数组中没有english,则增加)

db.student.update({"_id":3},{$addToSet:{course:{$each:

["math","english","Chinese"]}}}); 批量增加

7、删除文档数据

db.student.remove({_id:10});删除id为10的文档的数据。

8、删除库中的集合

db.student.drop();

9、删除数据库

db.dropDatabase();

10、Shell的help

db.help();查看操作数据库的方法

db.student.help();查看操作集合的(student)方法

11、mongodb的api

http://api.mongodb.org/js/2.1.2/index.html

12、数据库和集合命名规范

  1、不能是空字符串

  2、不能含有‘ ’、(空格)、,、$、/、\、和\O(空字符)

  3、应全部小写

  4、最多64个字节

  5、数据库名不能与现有系统保留库同名。如admin,config,local

13、ecllipse中装入mongodb插件

  help-->install new soft-->add-->Mongodb,http://www.jumperz.net/update/

14、查找db.[documentName].find({条件},{键指定})

查找所有年龄在25至27岁之间的学生

db.student2.find({"age":{$lte:27,$gte:25}},{"_id":0,"name":1,"age":1}); _id=0表示不显示 id

查找所有不是美国的学生

db.student.find({"Country":{$ne:"USA"}},{"_id":0,"name":1,"Country":1});

查询所有是美国和中国的学生

db.student.find({"Country":{$in:["USA","China"]}},{"_id":0,"name":1,"Country":1});

查询所有不是美国和中国的学生

db.student2.find({"Country":{$nin:["USA","China"]}},{"_id":0,"name":1,"Country":1});

查询所有数学成绩大于65或者英语成绩小于95的学生

db.student.find({$or:[{"Math":{$gt:65}},{"English":{$lt:95}}]},

{"_id":0,"name":1,"Math":1,"English":1});

查询所有性别为空的学生

db.student.find({"sex":{$in:[null]}},{"_id":0,"name":1});

查询所有名字为To的学生

db.student.find({"name":/To/},{"_id":0,"name":1});

查询所有学生名字不含字母a的学生

db.student.find({"name":{$not:/a/}},{"_id":0,"name":1});

查询数组book中有java和c++的学生信息

db.student.find({"book":{$all:["java","C++"]}},{"_id":0,"name":1});

查询数组第二个值是java的学生信息

db.student.find({"book.1":"java"},{"_id":0,"name":1})

查询数组长度是2的学生信息

db.student.find({"book":{$size:2}},{"_id":0,"name":1});

查询名字含T的所有学生的书的数组的长度(游标)

var student = db.student2.find({"name":/T/});

while(student.hasNext()){print(student.next().book.length)};

查询学生的book数组中从下标1开始起共2个即book[1],book[2]

db.student2.find({"name":"Tom5"},{"_id":0,"name":1,"book":{$slice:[1,2]}})

查询学生的book数组中最后一个元素

db.student2.find({"name":"Tom5"},{"_id":0,"name":1,"book":{$slice:-1}})

查询前五条数据

db.student2.find({},{"_id":0,"name":1}).limit(5);

查询从第七条开始后三条数据即第7,8,9

db.student2.find({},{"_id":0,"name":1}).limit(3).skip(6);

查询的结果按年龄正序排序

db.student2.find({},{"_id":0,"name":1,"age":1}).sort({age:1});

查询的结果按年龄逆序排序

db.student2.find({},{"_id":0,"name":1,"age":1}).sort({age:-1});

快照的使用

db.student2.find({$query:{"name":"Tom5"},snapshot:true},{"_id":0,"name":1});

15、索引

var start = new Date();

for(var i=0;i<20000;i++){

db.student.insert({"number":i,"name":"student"+i});

}

var end = new Date();

print((end-start)+"ms");

建立索引,查找速度变快1是正序创建索引(正序:越早的创建时间),-1为倒序创建索引(逆序:越迟的创建时间)

db.student.ensureIndex({"number":1});

var start = new Date();

db.student.find({"number":15997});

var end = new Date();

print((end-start)+"ms");

索引的创建在提高查询性能的同时会影响插入的性能。对于经常查询少插入的文档可以考虑用索引。

创建逆序索引name,并指定该索引名字为studentname

db.student.ensureIndex({"name":-1},{"name":"studentname"});

创建唯一索引name

db.student.ensureIndex({"name":1},{"unique":true});

如果集合中已经有重复的文档,踢出重复值

db.student.ensureIndex({"name":1},{"unique":true,"dropDups":true}) ;

指定查询所使用的索引(name正序索引),指定索引必须是创建好的索引

db.student.find({"name":"student333"}).hint({"name":1});

查看本次查询所使用的索引和查询数据的状态信息

db.student.find({"name":"student333"}).explain();

查看索引

db.system.indexes.find();

或db.system.namespaces.find();

不锁表创建索引

db.student.ensureIndex({"name":1},{"unique":true,"background":true})

删除索引

db.runCommand({"dropIndexes":"student",index:"name_1"});

批量删除

db.runCommand({"dropIndexes":"student",index:"*"});

db.map.find():

{ "_id" : ObjectId("55ae30a55e9fc03a8994fb34"), "gis" : { "x" : 185, "y" : 150 } }

创建2d索引,默认会建立[-180,180]的索引

db.map.ensureIndex({"gis":"2d"},{"min":-1,"max":200});

查询离点{70,180}最近的三个点

db.map.find({"gis":{$near:[70,180]}},{"gis":1,"_id":0}).limit(3);

查询以点(50,50)和点(190,190)为对角线的正方形中所有的点

db.map.find({"gis":{$within:{$box:[[50,50],[190,190]]}}},{"_id":0,"gis":1})

查询以(65,80)为点半径为50的圆内的点

db.map.find({"gis":{$within:{$center:[[65,80],50]}}},{"_id":0,"gis":1})

16、查询结果的个数

db.student.find().count();

去重操作

db.runCommand({distinct:”persons”,key:”country”}).values

Group使用

查询服务器版本号和主机操作系统

db.runCommand({buildInfo:1});

查询集合详细信息,大小,空间,索引

db.runCommand({collStats:"student"});

查看mongodb命令

db.listCommands();

http://localhost:28017/_command

查看操作本集合最后一次错误信息

db.runCommand({getLastError:”student”})

17、 固定集合

  1、固定集合默认是没有索引的就算是_id也是没有索引的

  2、由于不需分配新的空间,它的插入速度是非常快的

  3、固定集合的顺序是确定的,导致查询速度是非常快的

  4、最适合的是应用就是日志管理

  5、创建固定集合

创建一个新的固定集合,大小是100字节,可以存储文档十个。

db.createCollection("myColl",{size:100,capped:true,max:10});

  6、将一个普通集合转为一个固定集合。

db.runCommand({"convertToCapped":"student","size":10000});

  7、反向排序,默认是插入顺序排序

db.student.find().sort({$natural:-1});

  8、尾部游标,可惜shell不支持,java和php等驱动是支持的

18、文件GridFS

  1、上传一个文件(将/home/xxlong/xxlong.txt上传到数据库中,并重新命名为b.txt)

控制台(/bin/bash)mongofiles -d xxlong_db -l "/home/xxlong/xxlong.txt" put "b.txt"

  2、查看GridFS的文件存储状态

show collections;

====>

  fs.chunks

  fs.files

db.fs.chunks.find();

===>{ "_id" : ObjectId("55af7b9e9199bc7fc2000002"),

"files_id" : ObjectId("55af7b9e9199bc7fc2000001"),

"n" : 0,

"data" : BinData(0,"eHhsb25nIGxvbmcgaGVsbG8KMzExID

U2NyB5dWFuYmEKeHhsICB4aWFvCm

xvbmcJemkKdWVzdGMKCg==") }

db.fs.files.find();

===>{ "_id" : ObjectId("55af7b9e9199bc7fc2000001"),

"chunkSize" : 261120,

"uploadDate" : ISODate("2015-07-22T11:16:46.928Z"),

"length" : 58,

"md5" : "99eaa1494edf301e2c9bf51aee7f989e",

"filename" : "b.txt" }

查看文件内容

控制台:mongofiles -d xxlong_db get "b.txt" shell无法打开

查看所有文件

控制台:mongofiles -d xxlong_db list

删除已经存在的文件

控制台:mongofiles -d xxlong_db delete "b.txt"

19、服务器端运行eval

db.eval("function(name){return name}","xxl");

输出:xxl

20、保存js全局变量,system.js是一个特殊的集合

db.system.js.insert({"_id":"show_name","value":"xxlong"}) ;

db.eval("return show_name") ===>xxlong

21、导出数据

打开控制台(/bin/bash)

-d 指定要导出的库

-c 指定要导出的库的集合

-o 数据导出后存放的路径

-cvs指定导出的cvs格式

-q过滤导出

--type<json|csv|tsv>

切换到数据库目录下:

控制台:mongoexport --host 127.0.0.1 --port 27017  -d xxlong_db -c student -o /home/xxlong/xxl.json

22、导入数据

mongoimport -d xxlong_db -c student --file /home/xxlong/xxl.json

切换到数据库目录下:

控制台:mongoimport --host 127.0.0.1 --port 27017 -d xxlong_db -c student110 --file "/home/xxlong/xxlong.json"

23、运行时备份

导出127.0.0.1服务下的27017的数据库xxlong数据库

切换到数据库目录下:

控制台:mongodump --host 127.0.0.1:27017 -d xxlong_db -o /home/xxlong/

/home/xxlong 目录下是数据库名(xxlong_db)的文件夹,里面是备份的数据

24、运行时恢复

切换到数据库目录下:

控制台:mongorestore --host 127.0.0.1:27017 -d xxlong_db /home/xxlong/xxlong_db

25、上锁

上锁可以是缓冲区中的数据全部放到数据库中

db.runCommand({fsync:1,lock:1})

26、解锁

db.fsyncUnlock();

27、数据修复

当停电等不可逆转灾难来临的时候,由于mongodb的存储结构导致会产生垃圾数据,在数据恢复以后这垃圾数据依然存在,这是数据库提供一个自我修复的能力。

db.repairDatabase();

Ubuntu14.04下初步使用MongoDB的更多相关文章

  1. Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  2. Ubuntu14.04下Mongodb数据库可视化工具安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04下Mongodb官网安装部署步骤(图 ...

  3. Ubuntu14.04下Mongodb的Java API编程实例(手动项目或者maven项目)

    不多说,直接上干货! 若大家,不会安装的话,则请移步,随便挑选一种. Ubuntu14.04下Mongodb(在线安装方式|apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04 ...

  4. Ubuntu14.04下Mongodb(在线安装方式|apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 本博文介绍了MongoDB,并详细指引读者在Ubuntu下MongoDB的安装和使用.本教程在Ubuntu14.04下测试通过. 一.MongoDB介绍 MongoDB 是一个是 ...

  5. Ubuntu14.04下Mongodb官网卸载部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb官网安装部署步骤(图文详解)(博主推荐) https://docs.mongodb.com/manual/tutorial/ins ...

  6. Ubuntu14.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu14.04下Mongodb(离线安 ...

  7. Ubuntu14.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu 14.04.4 LTS ...

  8. 如何做到Ubuntu14.04下的mongdb远程访问?(图文详解)

    不多说,直接上干货! 本教程详细指导大家如何开启并设置用户权限.MongoDB默认是没有开启用户权限的,如果直接在公网服务器上如此搭建MongoDB,那么所有人都可以直接访问并修改数据库数据了. 其实 ...

  9. ubuntu14.04下搭建python+mysql环境

    简略记录ubuntu14.04下搭建python操作的mysql服务器的过程和其中遇到的问题及解决方法. 第一部分: 安装mysql 安装步骤:1. sudo apt-get install mysq ...

随机推荐

  1. FAQ: SBS 2011. The Windows SBS Manager service terminated unexpectedly

    Symptoms The Windows SBS Manager service is stopped with EventID 7034 every half an hour on SBS 2011 ...

  2. Solid Angle of A Cubemap Texel - 计算Cubemap的一个像素对应的立体角的大小

    参考[http://www.rorydriscoll.com/2012/01/15/cubemap-texel-solid-angle/] 计算diffuse irradiance map或者求解sh ...

  3. PhotoZoom放大的图片效果怎么样?清不清晰?

    PhotoZoom是一款使用了革命性技术.效果最好的图像无损放大工具.它可以对图片进行放大而没有锯齿,不会失真,让您无与伦比完美放大图像质量. PhotoZoom Pro使用了S-Spline Max ...

  4. 动态规划——Buyer

    题目链接 题目描述 哆啦A梦班级举办个party,当然吃的东西必不可少,哆啦A梦负责采购任务,他得到了一份清单,上面注明不同食品的受欢迎程度,哆啦A梦需要用一定的价钱尽可能达到的更大的受欢迎程度!例如 ...

  5. [Papers] Semantic Segmentation Papers(1)

    目录 FCN Abstract Introduction Related Work FCN Adapting classifiers for dense prediction Shift-and-st ...

  6. linux采用scp命令拷贝文件到本地,拷贝本地文件到远程服务器

    // 假设远程服务器IP地址为 192.168.1.100 1.从服务器复制文件到本地: scp root@192.168.1.100:/data/test.txt /home/myfile/ roo ...

  7. 编译htop

    git clone https://github.com/hishamhm/htop cd htop ./autogen.sh ./configure make make install

  8. 搞定PHP面试 - 函数知识点整理

    一.函数的定义 1. 函数的命名规则 函数名可以包含字母.数字.下划线,不能以数字开头. function Func_1(){ } //合法 function func1(){ } //合法 func ...

  9. 关于struts值栈的总结,前端页面如何使用标签取得值栈中的数据

    用户提交一次请求的执行过程 总结: struts值栈中 两个内容 一个是栈 一个是map 值栈(数据中心)的范围是一个请求 它代替了request作用域 struts自定义标签有一个特点 比如遍历集合 ...

  10. HDU1850 Being a Good Boy in Spring Festival

    /* HDU1850 Being a Good Boy in Spring Festival http://acm.hdu.edu.cn/showproblem.php?pid=1850 博弈论 尼姆 ...