我有一个查询,我想使用not like
aggregate
和$match
来实现$regex
查询。
我希望结果中的nophoto
中不要包含image url
。
所以我写的$ match查询是
[
'$match'=>[
'author.image'=>[
'$ne'=>[
'$regex'=>'/nophoto/'
]
]
]
],
但结果仍然是
[
{
_id: {
$oid: "5cc2b26236d94e620335b6a3"
},
image: "https://images.gr-assets.com/authors/1397937527p7/46603.jpg"
},
{
_id: {
$oid: "5cc2b26236d94e620335b6a4"
},
image: "https://images.gr-assets.com/authors/1397937527p7/46603.jpg"
},
{
_id: {
$oid: "5cc2b26236d94e620335b6a5"
},
image: "https://s.gr-assets.com/assets/nophoto/user/u_333x500-46491541e26dbeac15f51487d68dd207.png"
},
{
_id: {
$oid: "5cc2b26236d94e620335b6a6"
},
image: "https://s.gr-assets.com/assets/nophoto/user/u_333x500-46491541e26dbeac15f51487d68dd207.png"
}
]
我希望结果集的图片网址中没有nophoto
。
答案 0 :(得分:1)
db.collection.find({
'image': {
'$not': {
'$regex': "nophoto"
}
}
})
在PHP中看起来像这样
[
'$match'=>[
'image'=>[
'$not'=>[
'$regex'=>'nophoto'
]
]
]
]