• 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}" 
  • 相关阅读:
    物料外部编码的模糊查询
    ◆◆1LSMW的简单范例-LSMW导入会计科目
    通过Tcode查找LSMW
    LSMW批量更新物料主数据
    ◆◆0HR报表开发-Join & Projection
    HR常用宏(一)
    ◆◆0PM01-创建信息类型(infotype)教程
    keras_9_激活函数 Activations
    keras_8_优化器 Optimizers
    keras_7_评估标准 Metrics
  • 原文地址:https://www.cnblogs.com/anion-blogs/p/5681486.html
Copyright © 2020-2023  润新知