gpt4 book ai didi

ruby-on-rails-3 - 或者查询匹配 nil 或 ""与 Mongoid 仍然匹配 ""?

转载 作者:可可西里 更新时间:2023-11-01 09:58:22 28 4
gpt4 key购买 nike

我正在尝试为嵌入式 Mongoid::Document 编写一个查询,它可以找到“地址”字段既不是 nil 也不是“”的任何记录。

结合使用 MongoDB 文档,this issue in the Mongoid bug reports和 Mongoid 文档,我认为这样的事情应该可行:

scope :with_address, where("$or" => [{:address => {"$ne" => nil}}, {:address => {"$ne" => ""}}])

当我运行它时,选择器看起来没问题:

1.9.2p290 :002 > report.document.records.with_address
=> #<Mongoid::Criteria
selector: {"$or"=>[{:address=>{"$ne"=>nil}}, {:address=>{"$ne"=>""}}]},
options: {},
class: GlobalBoarding::MerchantPrincipal,
embedded: true>

但是当我查看结果时,它们包含一个地址为空的条目:

1.9.2p290 :007 > report.document.records.with_address.last  
<Record _id: 4f593f245af0501074000122, _type: nil, version: 1, name: "principal contact 3", title: "", dob: nil, address: "", email: "", phone: "", fax: "">

我不知道是不是我做的查询有误,这是 Mongoid 的错误,还是有其他问题。有没有人有过这样的查询经验?

最佳答案

最后,这是我能找到的唯一可以选择特定字段不为 nil 且不为空的记录的方法:

scope :with_name, all_of(:name.ne => nil).all_of(:name.ne => "")

关于ruby-on-rails-3 - 或者查询匹配 nil 或 ""与 Mongoid 仍然匹配 ""?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9641924/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com