zoukankan      html  css  js  c++  java
  • ruby&mongo_mapper

    mongo_mapper&ruby

    Mongomapper 用户mongo数据库配置,以及其提供了很多mongo的方法,可以很好地用来 对mongo相关封装和操作。

    环境准备:gem install mongo_mapper

    和activerecord很类似。将mongo的collection(表)和 类一一对应。

    mongo_mapper 网上方法资源:http://mongomapper.com/documentation/plugins/querying.html 

    1、mongo配置从yml文件中读取

    mongo55:
    host: ***
    port: ***
    database: ****

    2、mongo collection封装:

                 1)初始化mongo数据库连接

                 2)将需要的collections name 以类形式封装

    #encoding:utf-8
    require 'active_model'
    require 'mongo'
    require 'mongo_mapper'

    =begin
    author: kanlijun
    date: 2016/07/13
    description: 使用mongo_mapper模块实现collections封装,统一调配;初始化mongo连接,定义表和类对应关系
    =end
    class ConnectMongo
    def initialize(host,port,database)
    MongoMapper.connection =Mongo::Connection.new(host,port)
    MongoMapper.database=database
    end
    end
    #mobile
    class Mobile
    include MongoMapper::Document

    set_collection_name 'mobile'
    end

    #ncontacts
    class Ncontact
    include MongoMapper::Document

    end

    3、调用rb文件案例:

                 1)读取yml配置数据,并初始化;

                 2)使用mongo_mapper的mongo操作方法

    #encoding:utf-8
    require 'mongo_mapper'
    require_relative '../source/core/mongodb'

    DATA_PATH='../source/data/mongo.yml'
    mongo = YAML.load(File.open(DATA_PATH))
    db =mongo['mongo55']
    host,port,database =db['host'],db['port'],db['database']
    ConnectMongo.new(host,port,database)

    mobile = Mobile.all(:anion=>'789757')
    puts mobile[0]['de']
    puts mobile.length

    #条件搜索排序
    nsms = Nsms.where(:urr=>'789757').sort(:time.desc).all
    puts nsms[1]['p']
    lim =Nsms.first
    # puts lim
    puts lim['urr']

    #排序
    mo= Nsms.sort(:time.desc).first
    puts mo['urr']

    #随机拿出几个
    mo= Nsms.limit(3).all
    puts mo[0]['urr']
    puts mo[2]['urr']

    count = Nsms.where(:urr=>'789757').count
    puts "count:#{count}" 
  • 相关阅读:
    计网 | 文件传输协议
    Java | JDK8 | Integer
    2.项目管理-应用工具
    1.需求管理
    1.短视频运营基础
    10.视频效果---变形稳定器
    9.时间重映射
    8.效果控件之移动&&缩放
    7.标记
    6.子剪辑与合并剪辑
  • 原文地址:https://www.cnblogs.com/anion-blogs/p/5681486.html
Copyright © 2011-2022 走看看