如何在Perl中编写MongoDB$exists查询


db.getCollection('Subscriber'(.find({$and:[{"registerFrom":{$exists:false}},{">

googleRegistrationId":{$exists:true}},{"isGuest":"false"}]}(

如何在Perl中编写上述查询,请帮助。在perl上执行时,我得到了不同的结果

我在Perl中这样写过

my $Subscriber 2 = $Subscriber->find({'$and' =>[{dateOfJoin => {'$gt' => $date}},{registerFrom => { '$exists' => 'false'}},{googleRegistrationId => {'$exists' => 'true'}},{isGuest => '

false'}]}(->fields({ _id => 1,streamzCampaign => 1}(;

我没有得到与在 perl 中执行时相同的结果。如何在Perl中使用mongoDB的$exits,请帮忙。

我看到的两个可疑位是你引用了"真"和"假"——它们使这些字符串,而不是布尔值——我想知道你用什么$date,因为你在你的 shell 示例中没有。

这是你写的,格式很好:

my $Subscriber2 = $Subscriber->find(
    {
        '$and' => [
            { dateOfJoining        => { '$gt'     => $date } },
            { registerFrom         => { '$exists' => 'false' } },
            { googleRegistrationId => { '$exists' => 'true' } },
            { isGuest              => 'false' }
        ]
    }
)->fields( { _id => 1, streamzCampaigns => 1 } );

对于布尔值,您应该使用 boolean.pm 模块:

use boolean;
my $Subscriber2 = $Subscriber->find(
    {
        '$and' => [
            { dateOfJoining        => { '$gt'     => $date } },
            { registerFrom         => { '$exists' => false } },
            { googleRegistrationId => { '$exists' => true } },
            { isGuest              => false }
        ]
    }
)->fields( { _id => 1, streamzCampaigns => 1 } );

最新更新