ruby on rails 项目中用到的mongo的查询方法

最近在做一个项目,数据库使用的是mongo和redis,使用ruby on rails 进行编码提供给客户端API接口

假设有User表
#<User _id: 5497793c73616e2a0c010000, created_at: "2014-12-22T01:51:56.170Z", updated_at: "2015-01-06T03:36:52.689Z", avatar: "2014.png", encrypted_password: “ 23456", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: "2014-12-22T01:48:49.428Z", sign_in_count: 1451, current_sign_in_at: "2014-12-24T02:04:15.075Z", last_sign_in_at: "2014-12-24T02:04:15.055Z",  authentication_token: "838PySjM", auth_admin_token: "6kgsWsAFg", name: “ 3221", phone: "16812708279", birthday: "2003-12-22", gender: "male", tags: [], city: nil, works: nil, constellation: "摩羯座", description: nil>

1.从数据库中查找某个用户

User.find('5497793c73616e2a0c010000')   ----->  User.find('用户ID')

2.使用手机号查询的话

User.where(phone:123456789).first   ---> User.where(phone:用户手机号).first 

3.查询除本用户以外的所有用户

@users = User.not_me(@user).all

mode 中 scope :not_me, -> (user){ where(:user_id.ne => user.user_id)}  user为用户标识字段,即主键

4.查询和自己性别不同的用户

@users = User.where(:gender.ne => @user.gender).all

5.查询和星座运势匹配的用户

      map = {"白羊座"=>["射手座","狮子座","白羊座"],
             "金牛座"=>["处女座","摩羯座","金牛座"],
             "双子座"=>["水瓶座","天秤座","双子座"],
             "巨蟹座"=>["双鱼座","天蝎座","巨蟹座"],
             "狮子座"=>["白羊座","射手座","水瓶座"],
             "处女座"=>["摩羯座","处女座","金牛座"],
             "天秤座"=>["双子座","水瓶座","天秤座"],
             "天蝎座"=>["巨蟹座","双鱼座","天蝎座"],
             "射手座"=>["狮子座","射手座","白羊座"],
             "摩羯座"=>["金牛座","处女座","摩羯座"],
             "水瓶座"=>["天秤座","双子座","水瓶座"],
             "双鱼座"=>["天蝎座","巨蟹座","双鱼座"]}

@users = User.where(:constellation.in => map[@user.constellation]).all

6.查询不属于某个条件的所有用户,取8个

@users = User.where(:user_id.nin => ['1234','4321']).limit(8)

7.对查询按某种要求排序

@users = User.desc(:last_sign_in_at)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值