获取由monongoid生成的原始mongo DB查询表达式 [英] Get raw mongo db query expression that mongoid generate it

查看:56
本文介绍了获取由monongoid生成的原始mongo DB查询表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要获取由monongoid生成的mongo查询表达式该怎么做?

I want to get the mongoid generated mongo query expression how to do it ?

例如这是蒙古语语法

History.where(report_type: params["report_type"]).order_by(ts:1).only(:ts).last

我想拥有诸如to_sql之类的方法来获取本机查询表达式,以便可以在Mongo控制台上应用它.

I want to have the method, such as to_sql, to get the native query expression so that I can apply it on Mongo console.

推荐答案

MongoDB确实没有像SQL这样的查询语言,因此您无法在一堆精巧的片段中获得全部内容.但是,您可以得到碎片.

MongoDB doesn't really have a query language like SQL so you can't get the whole thing in one nice compact piece. You can, however, get the pieces.

此:

History.where(report_type: params["report_type"]).order_by(ts:1).only(:ts)

构建一个Mongoid::Criteria.那或多或少是基础查询的Mongoid版本.您可以通过调用selector:

builds a Mongoid::Criteria. That's more or less the Mongoid version of the underlying query. You can extract the query by calling selector:

q = History.where(report_type: params["report_type"]).order_by(ts:1).only(:ts)
q.selector
# { 'report_type' => whatever_was_in_params }

通过查看options[:sort]进行排序:

q.options[:sort]
# { 'ts' => 1 }

fieldsoptions[:fields]中:

q.options[:fields]
# { 'ts' => 1 }

这篇关于获取由monongoid生成的原始mongo DB查询表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆