怎么查找mongo-c-mongo java driver 3的静态库

11320人阅读
node(20)
javascript(59)
MongoDB的介绍
在说MongoDB数据插入操作之前,我们先来简单了解下它的数据逻辑结构。
MongoDB的逻辑结构是一种层次结构,主要由:文档(document)、集合(collection)、数据库(database)这三部分组成的。
文档(document):由键/值对构成,像{a:1};{s:”abc”}等,它是MongoDB核心单元,MongoDB的文档(document),相当于关系数据库中的一行记录。
集合(Collection):多个文档组成一个集合(collection),相当于关系数据库的表。
数据库(database):多个集合(collection),逻辑上组织在一起,就是数据库(database)。
一个MongoDB实例支持多个数据库(database)。
安装及引用
npm install mongoose
引用mongoose
var mongoose = require(“mongoose”);
使用mongoose链接数据库
var db = mongoose(“mongodb://user:pass@localhost:port/database”);
var mongoose = require(“mongoose”);
var db = mongoose.connect(“mongodb://127.0.0.1:27017/test”);
db.connection.on(“error”, function (error) {
console.log(“数据库连接失败:” + error);
db.connection.on(“open”, function () {
console.log(“——数据库连接成功!——”);
MongoDB基础
一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力
由Schema发布生成的模型,具有抽象属性和行为的数据库操作对
由Model创建的实体,他的操作也会影响数据库
Schema —— 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力,仅仅只是数据库模型在程序片段中的一种表现,可以说是数据属性模型(传统意义的表结构),又或着是“集合”的模型骨架。
var mongoose = require("mongoose")
var TestSchema = new mongoose.Schema({
name : {type:String},
age : {type:Number,default:0},
time : {type:Date,default:Date.now},
emial : {type:String,default:''}
基本属性类型有:字符串、日期型、数值型、布尔型(Boolean)、null、数组、内嵌文档等
Model —— 由Schema构造生成的模型,除了Schema定义的数据库骨架以外,还具有数据库操作的行为,类似于管理数据库属性、行为的类。
var db = mongoose.connect("mongodb://127.0.0.1:27017/test");
var TestModel = db.model("test1", TestSchema);
数据库中的集合名称,当我们对其添加数据时如果test1已经存在,则会保存到其目录下,如果未存在,则会创建test1集合,然后在保存数据。
Entity —— 由Model创建的实体,使用save方法保存数据,Model和Entity都有能影响数据库的操作,但Model比Entity更具操作性。
var TestEntity = new TestModel({
name : "Lenka",
email : ""
console.log(TestEntity.name);
console.log(TestEntity.age);
数据库的连接,Schemal的创建,模型的创建,实体的创建,通过实体保存数据库信息。
var mongoose = require("mongoose");
var db = mongoose.connect("mongodb://127.0.0.1:27017/test");
var TestSchema = new mongoose.Schema({
name : {type:String},
age : {type:Number,default:0},
email : {type:String},
time : {type:Date,default:Date.now}
var TestModel = db.model("test1",TestSchema);
var TestEntity = new TestModel({
name:'helloworld',
TestEntity.save(function(err,doc){
console.log("error :" + err);
console.log(doc);
通过entity、model来完成数据库的增删查改。
// mongoose 链接
var mongoose = require('mongoose');
= mongoose.createConnection('mongodb://127.0.0.1:27017/test');
Schema 结构
var mongooseSchema = new mongoose.Schema({
username : {type : String, default : '匿名用户'},
: {type : String},
: {type : String},
: {type : Date, default: Date.now},
: {type : Number}
mongooseSchema.methods.findbyusername = function(username, callback) {
return this.model('mongoose').find({username: username}, callback);
mongooseSchema.statics.findbytitle = function(title, callback) {
return this.model('mongoose').find({title: title}, callback);
相当于Schemal是一个构造函数,在这里可以添加方法findbyuseraname()和findbytitle
var mongooseModel = db.model('mongoose', mongooseSchema);
我理解为在test数据库下面创建了mongoose collection的连接
Entity结构
var doc = {username : 'emtity_demo_username', title : 'emtity_demo_title', content : 'emtity_demo_content'};
var mongooseEntity = new mongooseModel(doc);
mongooseEntity.save(function(error) {
if(error) {
console.log(error);
console.log('saved OK!');
db.close();
var mongooseEntity = new mongooseModel({});
mongooseEntity.findbyusername('model_demo_username', function(error, result){
if(error) {
console.log(error);
console.log(result);
db.close();
基于model的增加、修改与查询
var doc = {username : 'model_demo_username', title : 'model_demo_title', content : 'model_demo_content'};
mongooseModel.create(doc, function(error){
if(error) {
console.log(error);
console.log('save ok');
db.close();
var conditions = {username : 'model_demo_username'};
var update
= {$set : {age : 27, title : 'model_demo_title_update'}};
var options
= {upsert : true};
mongooseModel.update(conditions, update, options, function(error){
if(error) {
console.log(error);
console.log('update ok!');
db.close();
var criteria = {title : 'emtity_demo_title'};
var fields
= {title : 1, content : 1, time : 1};
var options
mongooseModel.find(criteria, fields, options, function(error, result){
if(error) {
console.log(error);
console.log(result);
db.close();
var conditions = {username: 'emtity_demo_username'};
mongooseModel.remove(conditions, function(error){
if(error) {
console.log(error);
console.log('delete ok!');
db.close();
基于实例方法的查询
前面说到findbyusername()在schemal层定义,相当于实例化,然后继承findbyusername()方法
var mongooseEntity = new mongooseModel({});
mongooseEntity.findbyusername('model_demo_username', function(error, result){
if(error) {
console.log(error);
console.log(result);
db.close();
基于静态方法的查询
静态方法可以直接在模型层调用
mongooseModel.findbytitle('emtity_demo_title', function(error, result){
if(error) {
console.log(error);
console.log(result);
db.close();
本文也是研究了好几篇博文而来的心得体会,mongoose里面其实就三个概念,schemal、model、entity,把这三个弄清楚了也就好了。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:132503次
积分:2480
积分:2480
排名:第15750名
原创:118篇
转载:15篇
评论:37条
(1)(10)(9)(2)(7)(5)(11)(10)(6)(5)(4)(4)(5)(6)(3)(8)(8)(5)(8)(16)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'mongoDB现在是一个使用比较多的数据库,因为近日想存一些东西,所以,使用了一下。
首先,安装mongoDB服务器端。现在出到了3.0,可以直接到官网下载。然后启动。
如果想用命令行看的话,就到/usr/local/mongo/bin 使用./mongoc,就进到了命令行中。
前面的很多人介绍,我就不细说了。
然后是需要用类库操作mongoDB。我用的是mongo c driver,下载地址在http://docs.mongodb.org/ecosystem/drivers/?_ga=1.3205348,选择就可以。进去后找一个最新的版本下载。顺带看看他在src/libbson目录中,是否包含了bson库,如果没有,找个有的再下载下来,或者去bson官网下载后,放到这个目录下面。我第一次在官网上下载的就没有bson库,被坑的不轻。
上传到服务器上后,先配置。先看看有没有autogen.sh,如果有,先调用它,让它生成配置脚本。然后调用./configure,生成make文件,用make命令生成mongo和bson的.o文件。
然后联合编译自己的程序,用-L把.o文件的路径引入,用-l把.o文件引入,.o文件一般在各自根目录的.libs中。例如-L../lib/mongo-c-driver/.libs/ -L../lib/mongo-c-driver/src/libbson/.libs/ &-lmongoc-1.0 -lbson-1.0。
编译成功后,需要把.o文件的位置标示出来,一般放入/usr/lib/下,不过我没有权限,就把这两个.o文件放到libs目录中,然后用export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../libs 设置一下库文件的路径。
程序就可以正常启动了。
本文已收录于以下专栏:
相关文章推荐
最近由于mongodb作为olap需要导出csv到
mongoc是MongoDB的C语音驱动
下载解压并配置
$ wget /MongoDB/mongo-c-driver/releases/downloa...
mongoDB为非关系式数据库,与mysql不同。从未接触过mongodb第一次安装、测试、调试、熟悉命令熟悉官网。目的在于学习mongodb-c-driver中的API接口使用。
MongoDB官方手册:http://docs.mongodb.org/ecosystem/drivers/c/
下载mongodb C driver
[root@slayer ~]# git...
mongodb c driver的使用总结(1)
1、初始化mongoc
非线程安全,只需调用一次
mongoc_init();
2、设置日志回调
static vo...
build mongo-cxx-driver-v2.2
从mongodb官方网站下载mongo c++ driver程序包:mongodb-linux-x86_64-2.2.0.tar。解压后运行s...
他的最新文章
讲师:王哲涵
讲师:韦玮
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 mongocsharpdriver 的文章

 

随机推荐