精华内容
参与话题
问答
  • mongodb学习笔记

    千次阅读 2011-09-12 00:28:16
    0. 官方网站: http://www.mongodb.org/ 1. 入门学习文档: The Little MongoDB Book.pdf MongoDB权威指南.pdf 2. 安装mongodb: 2.1 ubuntu可以直接使用apt-get安装;
    0. 官方网站:
    http://www.mongodb.org/

    1. 入门学习文档:
    The Little MongoDB Book.pdf
    MongoDB权威指南.pdf

    2. 安装mongodb:

    2.1 ubuntu可以直接使用apt-get安装;
    sudo apt-get install mongodb

    在安装mongodb的时候,系统会安装mongodb的很多依赖包,安装运行mongodb,会提示:
    mongod: error while loading shared libraries: libmozjs.so: cannot open shared object file: No such file or directory

    解决方法是:
    sudo apt-get install xulrunner-dev

    查找libmozjs.so文件
    find /usr/lib | grep libmozjs

    可以看到
     /usr/lib/xulrunner-1.9.2.15/libmozjs.so
     /usr/lib/libmozjs.so
     /usr/lib/xulrunner-devel-1.9.2.15/sdk/lib/libmozjs.so

    给库做一个链接:
    sudo ln -s /usr/lib/xurunner-1.9.2.15/libmozjs.so /usr/lib

    重启mongodb的服务:
    sudo service mongodb start

    查看进程,确认下mongodb进程:
    ps aux | grep mongodb
    mongodb 1027 0.0 0.1 79576 3720  Ssl Mar23 0:00 /usr/lib/mongodb/mongod --config /etc/mongodb.conf
    root 2066 0.0 0.0 1864 740 pts/0 S+ 10:23 0:00 grep --color=auto mongodb

    这表示mongodb服务已经启动,现在可以链接mongodb:
    /usr/lib/mongodb/mongo

    MongoDB shell version: 1.2.2
     url: test
     connecting to: test
     type "exit" to exit
     type "help" for help
     >

    这就表示已经成功安装和启动了。

    2.2 也可参考官方网站:
    http://www.mongodb.org/display/DOCS/Quickstart+Unix

    压缩包的安装和启动方法
    首先下载linux包:http://www.mongodb.org/downloads,下载linux 32-bit;
    上传到服务器:/usr/lib
    解压:tar xzfmongodb-linux-i686-1.8.0.tar 重命名下,改为mongodb(我这里是为了好看起见)
    现在可以测试下:
    启动mongodb服务:/usr/lib/mongodb/bin/mongod (注意默认情况下mongodb的数据文件是指定到/data/db中的,所以在启动前,新建此文件夹,也可以自己定义数据库文件路径,启动方式是:/usr/lib/mongodb/bin/mongod --dbpath 你所建的数据库文件路径)
    链接数据库:/usr/lib/mongodb/bin/mongo 

    要想在服务器启动时自动启动mongodb,解决方法是:
    在/etc/rc.local文件中加入/usr/lib/mongodb/bin/mongod --dbpath /data/db,
    reboot,直接连接数据库,你会发现不用启动mongodb服务就可以连接了,这说明上面自动启动mongodb服务添加成功!

    程序目录:
    /usr/lib/mongodb
    配置文件:
    /etc/mongodb.conf

    sudo service mongodb start
    sudo service mongodb stop

    3. C++连接数据库:

    下载全量的代码包,用root用户编译安装。

    http://www.mongodb.org/pages/viewpage.action?pageId=133415
    Installing the Driver Library and Headers

    A good source for general information about setting up a MongoDB development environment on various operating systems is the building page.

    The normal database distribution used to include the C++ driver, but there were many problems with library version mismatches so now you have to build from source. You can either get the full source code for the database and just build the C++ driver or download the driver separately and build it.

    sudo apt-get install scons

    scons - a software construction tool
    The  scons  utility builds software (or other files) by determining which component pieces must be rebuilt and executing the necessary commands to rebuild them.
    By default, scons searches for a file named SConstruct, Sconstruct, or sconstruct (in that order)  in  the  current  directory  and reads its configuration from the first file found.  An alternate file name may be specified via the -f option.

    Compiling
    The C++ drivers requires the pcre and boost libraries (with headers) to compile.? Be sure they are in your include and lib paths. You can usually install them from your OS's package manager if you don't already have them.

    需要安装boost库:
    sudo apt-get install libboost*

    http://www.boost.org/
    Welcome to Boost.org!
    Boost provides free peer-reviewed portable C++ source libraries.
    We emphasize libraries that work well with the C++ Standard Library. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use.

    下载C++驱动后安装、编译:
    http://www.mongodb.org/pages/viewpage.action?pageId=133409

    cd mongo-cxx-driver-nightly/
    scons

    报错问题解决:
    g++ -o client/examples/authTest.o -c -O3 -D_SCONS -DMONGO_EXPOSE_MACROS -Imongo client/examples/authTest.cpp
    In file included from mongo/client/dbclient.h:23:0,
                     from client/examples/authTest.cpp:20:
    mongo/client/../pch.h:80:33: fatal error: boost/thread/once.hpp: No such file or directory
    compilation terminated.
    scons: *** [client/examples/authTest.o] Error 1
    scons: building terminated because of errors.

    安装libboost,之后:
    g++ -o mongo/client/dbclient.o -c -O3 -D_SCONS -DMONGO_EXPOSE_MACROS -Imongo mongo/client/dbclient.cpp
    In file included from mongo/client/../db/cursor.h:23:0,
                     from mongo/client/../db/pdfile.h:411,
                     from mongo/client/dbclient.cpp:19:
    mongo/client/../db/matcher.h:24:21: fatal error: pcrecpp.h: No such file or directory
    compilation terminated.
    scons: *** [mongo/client/dbclient.o] Error 1
    scons: building terminated because of errors.

    PCRE - Perl-compatible regular expressions

    解决办法:
    http://groups.google.com/group/mongodb-user/browse_thread/thread/824c7c8c5c05f3c1
    apt-get -y install tcsh git-core scons g++
    apt-get -y install libpcre++-dev libboost-dev libreadline-dev xulrunner-1.9.2-dev
    apt-get -y install libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev libboost-date-time-dev




    展开全文
  • MongoDB学习笔记一:MongoDB的下载和安装 趁着这几天比较空闲,准备学习一下MongoDB数据库,今天就简单的学习了一些MongoDB的下载和安装,并创建了存储MongoDB的数据仓库。将自己今天学习到的写成博客分享给大家。 ...

    MongoDB学习笔记一:MongoDB的下载和安装

    趁着这几天比较空闲,准备学习一下MongoDB数据库,今天就简单的学习了一些MongoDB的下载和安装,并创建了存储MongoDB的数据仓库。将自己今天学习到的写成博客分享给大家。

    一、MongoDB的下载和安装

    MongoDB的下载地址为:http://www.mongodb.org/

    1、进入官网的首页后,在首页的右上方单击Downloads连接,如图所示:


    2、在页面中可以看到目前最新的版本和以前发布过的版本,这里选择最新版本,windows 32位的进行下载,文件的格式为ZIP格式的,单击ZIP链接,如图所示:


    3、单击连接后会提示下载,如果没有提示则手动的单击click here链接,如图所示:


    4、下载完成后解压该文件,可以看到只有一个bin目录,也就是MongoDB主要的目录,如图所示:


    5、安装的过程就是将bin目录添加到path环境变量中的过程,添加后就可以在任何的目录下使用MongoDB的命令,进行MongoDB的一些操作,如图所示:


    6、配置好path环境变量之后,在命令行中输入mongo  -version,如果能够看到如下的提示,则说明安装成功了。


    二、建立存储MongoDB数据的地方

    从学习中了解到,如果要使用MongoDB,需要像SVN那样,创建一个存储MongoDB数据的一个文件夹,为了方便以后的管理,我们将数据文件的目录放在和解压目录一样的地方,在该目录下建立一个data文件夹,名称随意,然后在命令行中输入mongod –dbpath e:\open\mongodb\data,命令执行完成后,并会启动相应的实例,默认的端口是27017,如果要启动MongoDB服务器,只需要输入该命令即可,大家也可以根据需要制作成bat批处理文件的方式运行。启动的效果如图所示:


    三、连接默认的数据库test

    MongoDB服务器开启之后,在命令行中输入mongo localhost:27017,即可以连接到默认的test数据库,如图所示:


    这里只是简单地说明了MongoDB的安装,关于介绍将会在以后中进行说明。

    展开全文
  • mongoDB学习笔记——安装及启动

    千次阅读 2014-02-06 22:04:16
    步骤二: 设置MongoDB程序存放目录 例如,将其解压到 c:\,再重命名为mongo,路径为c:\mongo。步骤三: 设置数据文件设置存放目录 例如,在c:盘建一个db文件夹,路径c:\db 步骤四: 启动MongoDB服务 进入 cm

    WINDOWS环境下:

    一、安装

    步骤一:  下载MongoDB 

    url下载地址:  http://downloads.mongodb.org/win32/


    步骤二:  设置MongoDB程序存放目录 

    例如,将其解压到 c:\,再重命名为mongo,路径为c:\mongo。


    步骤三:  设置数据文件设置存放目录 

    例如,在c:盘建一个db文件夹,路径c:\db 


    步骤四:  启动MongoDB服务 

    进入 cmd 提示符控制台,c:\mongo\bin\mongod.exe --dbpath=c:\db 。

    可以将c:\mongo\bin\写到环境变量里,不必每次都写这个路径。

    --dbpath是一个参数。

    可以用 mongod /? 或者 mongod --help查看其他参数。比如

    --logpath 日志目录

    --journal 应用日志启动。

    --repairpath 修复(因为我们安装到默认的目录data\db,所以要指明目录名)

    for windows参数

    install 安装成服务

    remove 卸载服务

    mongodb启动以后,如果因为种种意外原因,比如宕机,那么下次mongodb可能就启动不来,就需要修复,用到这个repair或者repairpath参数。据说启动的时候用上这个journal参数,就会严谨很多,避免这个缺陷。


    步骤五、连接

    新打开一个CMD输入:c:\mongo\bin\mongo,开始MongoDB之旅 


    步骤六、断开连接

    连接mongoDB后,想断开的话,可以 输入exit或者是ctrl + c


    步骤七、关闭数据库

    连接的情况下,use admin,切换到admin,然后输入db.shutdownServer()。


    补充: 如果想开机即启动,可以将MongoDB作为 
    Windows 服务随机启动  先创建C:\mongo\logs\mongodb.log文件,用于存储MongoDB的日志文件, 再安装系统服务。

    C:\mongo\bin\mongod  --dbpath=c:\ db --logpath=c:\mongo\lo gs\mongodb.log --journal --install 

    卸载的话,将install换成remove

    ===================================

    如果MongoDB已经安装成为WINDOWS的服务,不知为何,、

    无论是在mongodb服务中,输入

    >use admin

    >db.shutdownServer()

    还是在WINDOWS的CMD中,输入

    net stop MongoDB

    都可以将服务停止,但同时会报错。


    展开全文
  • MongoDB 学习笔记四 C#调用MongoDB

    千次阅读 2015-10-27 15:51:33
    驱动https://github.com/mongodb/mongo-csharp-driver/downloads 官方推荐使用Nuget进行安装。但通过Nuget 事实下我下载后直接引用,在Framework4.0框架的项目里失败了。文档:...

    驱动

    C#/.NET Driver Version MongoDB 2.4 MongoDB 2.6 MongoDB 3.0
    Version 2.0
    Version 1.10
    Driver Version .NET 3.5 .NET 4.0 .NET 4.5 Mono 2.10 Mono 3.x
    Version 2.0
    Version 1.10

    我这里下载1.10版本,framework 4.0环境。

    使用

    连接

    using MongoDB.Bson;
    using MongoDB.Driver;
    var client = new MongoClient("mongodb://localhost:27017");
    var server = client.GetServer();
    var database = server.GetDatabase("foo");
    var collection = database.GetCollection<BsonDocument>("bar");
    
    await collection.InsertOneAsync(new BsonDocument("Name", "Jack"));
    
    var list = await collection.Find(new BsonDocument("Name", "Jack"))
        .ToListAsync();
    
    foreach(var document in list)
    {
        Console.WriteLine(document["Name"]);
    }

    Document是实体类

    using MongoDB.Bson;
    using MongoDB.Driver;
    public class Person
    {
        public ObjectId Id { get; set; }
        public string Name { get; set; }
    }
    var client = new MongoClient("mongodb://localhost:27017");
    var server = client.GetServer();
    var database = server.GetDatabase("foo");
    var collection = database.GetCollection<Person>("bar");
    
    await collection.InsertOneAsync(new Person { Name = "Jack" });
    
    var list = await collection.Find(x => x.Name == "Jack")
        .ToListAsync();
    
    foreach(var person in list)
    {
        Console.WriteLine(person.Name);
    }

    实体类给下面的代码使用

    public class Entity
    {
        public ObjectId Id { get; set; }
        public string Name { get; set; }
    }

    插入

    var entity = new Entity { Name = "Tom" };
    collection.Insert(entity);
    var id = entity.Id; // Insert will set the Id if necessary (as it was in this example)

    查找

    var query = Query<Entity>.EQ(e => e.Id, id);
    var entity = collection.FindOne(query);
    // var entity = collection.FindOneByIdAs<Entity>(id);
    
    /*
     定义一个查询:查询stdid=1的文档
    FindOneArgs args = new FindOneArgs {
        Query = Query.EQ("stdid", 1),//查询stdid field等于1document。
    };
    //查询
    var std = collection.FindOneAs<Student>(args);
    */
    /*
     查询多条
     IMongoQuery query = Query.GTE("stdid",2);
     var result=collection.FindAs<Student>(Query.GTE("stdid",2));
     foreach (var each in result) {
         Console.WriteLine(each.stdName);
     }
    */

    保存

    entity.Name = "Dick";
    collection.Save(entity);

    更新

    var query = Query<Entity>.EQ(e => e.Id, id);
    var update = Update<Entity>.Set(e => e.Name, "Harry"); // update modifiers
    collection.Update(query, update);

    删除

    var query = Query<Entity>.EQ(e => e.Id, id);
    collection.Remove(query);

    这是一个完整的示例:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    using MongoDB.Bson;
    using MongoDB.Driver;
    using MongoDB.Driver.Builders;
    
    namespace ConsoleApplication1
    {
        public class Entity
        {
            public ObjectId Id { get; set; }
            public string Name { get; set; }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                var connectionString = "mongodb://localhost";
                var client = new MongoClient(connectionString);
                var server = client.GetServer();
                var database = server.GetDatabase("test");
                var collection = database.GetCollection<Entity>("entities");
    
                var entity = new Entity { Name = "Tom" };
                collection.Insert(entity);
                var id = entity.Id;
    
                var query = Query<Entity>.EQ(e => e.Id, id);
                entity = collection.FindOne(query);
    
                entity.Name = "Dick";
                collection.Save(entity);
    
                var update = Update<Entity>.Set(e => e.Name, "Harry");
                collection.Update(query, update);
    
                collection.Remove(query);
            }
        }
    }

    参考:http://mongodb.github.io/mongo-csharp-driver/1.10/getting_started/

    LinQ查询

    C# driver 1.8版本开始支持Linq查询。

    var linquery = from e in collection.AsQueryable<SY.Model.User>()
                           //where e.age> 22
                           select e;
    linquery=linquery.Where(c=>c.Name=="张三");
    int count=linquery.Count();
    

    参考:http://mongodb.github.io/mongo-csharp-driver/1.10/linq/

    Document查询方式

    未测试,参考地址记录在这里。

    //Document docName = new Document { { "字段名1", "输入值1" }, { "字段名2", "输入值2" } };
    /// <summary>
    /// 根据姓名获取用户信息
    /// </summary>
    /// <param name="mUserInfo">用户Model类</param>
    /// <returns>用户泛型集合</returns>
    public List<UserInfo> GetUserByName(UserInfo mUserInfo)
    {
        List<UserInfo> lsUser = new List<UserInfo>();
        using (Mongo mongo = new Mongo("mongodb://localhost"))
        {
            MongoDatabase mongoDatabase = mongo.GetDatabase("UserInfo") as MongoDatabase;
            MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>("myCollection") as MongoCollection<Document>;
            mongo.Connect();
            Document docName = new Document { { "FirstName", "aaa" }, { "LastName", "bbb" } };
            MongoDB.ICursor<Document> users = mongoCollection.Find(docName);
    
            foreach (Document user in users.Documents)
            {
                UserInfo mUser = new UserInfo();
                mUser.FirstName = user["FirstName"].ToString();
                mUser.LastName = user["LastName"].ToString();
                mUser.CorporationName = user["CorporationName"].ToString();
                mUser.Phone = user["Phone"].ToString();
                mUser.Email = user["Email"].ToString();
                mUser.UserType = user["UserType"].ToString();
                lsUser.Add(mUser);
            }
        }
    
        return lsUser;
    }

    http://weishangxue.blog.163.com/blog/static/21575188201181633811102/
    http://mikaelkoskinen.net/post/mongodb-aggregation-framework-examples-in-c

    展开全文
  • mongoDB学习笔记——在C#中查询

    千次阅读 2014-02-10 11:44:01
    1、下载安装 想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动。C#版的驱动貌似有很多种,如官方提供的samus。 实现思路大都类似。这里我们用官方提供的mongo-csharp-driver :下载地址:...
  • mongodb学习笔记--C++操作mongodb

    万次阅读 2017-04-26 21:37:18
    mongodb学习笔记–C++操作mongodb  学习mongodb过程当中,必须学习的就是用C++(Java、PHP、C#等)操作mongodb,这里讲述C++操作mongodb,在官方提供的mongo-cxx-driver驱动中有相关的操作例子,可以结合例子学习,...
  • MongoDB学习笔记3 - MongoDB vs MySQL

    千次阅读 2011-02-22 00:03:00
    今天通过一个实验比较了一下MongoDB和MySQL的性能,注意这个比较只反映了我们这个应用场景下的情况,并不能代表普遍的情况。   我们希望存储一些视频历史上的流量,需要存1年的时间,每天活跃的...
  • 该篇博文主要讲解下MongoDB的连接、配置、管理工具MongoDB shell 以及MongoDB官方提供的一个图形工具MongoDB Compass MongoDB shell 1.MongoDB shell 连接 MongoDB shell 是MongoDB自带的一个交互式的JavaScript ...
  • Mongodb学习笔记 --- python读取mongodb数据
  • 一、MongoDB是什么  MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。  它介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库...
  • MongoDB 学习笔记 之 QueryDocument 查询

    千次阅读 2012-02-01 15:17:02
    MongoDB 数据库作为Nosql中的一员,是非关系数据库当中功能最丰富,最像关系数据库的。 查询是比较方便的,通过QueryDocument 对象我们可以自由组装查询过滤条件! 今天在使用QueryDocument 的时候有个字段我用作...
  • JDBC方式操作MongoDB:连接数据库、创建集合、文档的CRUD操作
  • (9)使用条件表达式(, >=,!=) //大于: field > value db.collection.find({field:{$gt:value}}); //小于: field db.collection.find({field:{$lt:value}}); //大于等于: field >= value db.collection.find({...
  • 前面的几篇博文,大概介绍了如何安装MongoDB,以及介绍了MongoDB shell与MongoDB Compass。 新安装的MongoDB是没有账号设置的,也就是说任何人都可以连接进MongoDB,这是非常不安全的。所以我们需要对MongoDB进行...

空空如也

1 2 3 4 5 ... 20
收藏数 146,523
精华内容 58,609
关键字:

mongodb学习笔记