db.getCollection('订户&#39)找到({$和:[{" registerFrom" {$存在:假}},{" googleRegistrationId&#34 ;:{$存在:真}},{" isGuest":"假"}]})
如何在Perl中编写上述查询请帮助。在perl上执行时,我得到的结果不同
我在perl中写过这样的文字
我的$ Subscriber2 = $ Subscriber-> find({' $和' => [{dateOfJoining => {' $ gt' => $ date}} ,{registerFrom => {' $ exists' =>' false'}},{googleRegistrationId => {' $ exists' =>&# 39; true'}},{isGuest =>' false'}]}) - > fields({_ id => 1,streamzCampaigns => 1});
我没有得到与在perl中执行时相同的结果。如何在Perl中使用$ exits of mongoDB。请帮助解决这个问题。
答案 0 :(得分:1)
我看到的两个可疑位是你引用的" true"和"假" - 制作这些字符串,而不是布尔值 - 我想知道你为$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 } );