【问题标题】:Get raw mongo db query expression that mongoid generate it获取 mongoid 生成的原始 mongo db 查询表达式
【发布时间】:2015-03-09 02:36:56
【问题描述】:

我想得到mongoid生成的mongo查询表达式怎么办?

例如这是mongoid语法

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

我希望有方法,例如to_sql,来获取本机查询表达式,以便我可以在 Mongo 控制台上应用它。

【问题讨论】:

    标签: ruby-on-rails mongoid


    【解决方案1】:

    MongoDB 并没有像 SQL 这样的查询语言,所以你不能把整个事情放在一个漂亮的紧凑的部分中。但是,您可以得到碎片。

    这个:

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

    构建一个Mongoid::Criteria。这或多或少是底层查询的 Mongoid 版本。您可以通过调用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 }
    

    【讨论】:

    • 太棒了。我认为你让我的生活变得更轻松了。
    猜你喜欢
    • 2014-02-15
    • 2015-03-13
    • 2021-08-27
    • 2011-06-04
    • 2016-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    相关资源
    最近更新 更多