每日学习笔记(12)

 一,源码编译openfetion

0,将所需的依赖库都安装好
1,安装CMake,版本2.8以上
2,在openfetion目录下建立一个build目录
3,cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=debug
4,进入build目录中进行编译:make 
   安装:make install
5,安装完成后若出现
openfetion: error while loading shared libraries: libofetion.so.0: cannot open shared object file: No such file or directory
请在终端中运行ldconfig
 二,mongodb快速入门
1,创建数据库存储目录/data/db
2,进入bin目录下,./mongod启动服务器
3,./mongo启动shell窗口,在这里进行初步学习
4,shell默认是连接到'test'数据库,可以“use mydb"切换到mydb数据库
MongoDb并不会立即为你创建数据库,而是直到第一天数据插入时才创建,这种“延迟创建“的
方式性能比较好。这也意味着如果没有插入数据,则使用"show dbs"是看不到空数据库的。
5,插入数据到集合中
db.foo.save({name:"phinecos"});
db.foo.find();
我们不需要预先定义集合,MongoDB会在第一个数据插入时自动创建,存储的文档可以是任何结构的,这就意味着数据库的升级和迁移很简单了。
上面的find()实际返回一个迭代器,
var cursor = db.foo.find();
while (cursor.hasNext()) printjson(cursor.next());
也可以这样:
db.foo.find().forEach(printjson);
你也可以将迭代器视为一个数组:
printjson(cursor[3]);
或者干脆将其转化为一个数组:
var arr = db.foo.find().toArray();
6,查询
db.foo.find({name:'phinecos'}).forEach(printjson);
可以看出,查询条件本身就是一个文档,形式为{a:A,b:B,...}的查询文档就意味着"where a==A and b==B and ...".这个查询等同于"select * from foo where name='phinecos'"
你也可以要求查询只返回文档部分字段:
db.foo.find({x:4},{j:true}).forEach(printjson);
这样就只会显示j这个字段,它相当于"select j from foo where x=4"
db.foo.findOne({name:'phinecos'});
这样只返回一个文档
可以用limit方法来限制返回的结果数目:
db.foo.find().limit(3);
7,连接字符串
mongodb://phinecos:123@localhost/test
使用用户名phinecos和密码123连接到本地的test,
MongoDB的服务器会为每一个上来的TCP连接创建一个线程,因此极力推荐在应用程序中使用某种形式的连接池。

你可能感兴趣的:(mongodb,linux,系统,休闲,openfetion)