我有一些带有下一个记录的集合:
{
    "_id" : ObjectId("52b18fb2a21351b2bb29dfc7"),
    "title" : "aaa"
}
{
    "_id" : ObjectId("52b18fd0d17d7f69e078f7b7"),
    "title" : "bbb"
}
{
    "_id" : ObjectId("52b18fd3d17d7f69e078f7b8"),
    "title" : "ccc"
}
Run Code Online (Sandbox Code Playgroud)
下一个查询给出了我们预期的 1 条记录(标题为“aaa”):
db.test.find({
     {title:{$regex:'aaa'}}
})
Run Code Online (Sandbox Code Playgroud)
但是当我们对 $ 使用复杂条件时,我们得到了一些意想不到的东西:
db.test.find({
    $and: [
        {title:{$regex:'aaa'}},
        {title:{$regex:'bbb'}}
    ]
})
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我需要完全查询,因为我将使用带有停用词的选择,例如:
db.test.find({
    $and: [
        {title:{$regex:'aaa'}},
        {title:{$regex:'bbb'}},
        {title:{$not:/bbb/i}},
    ]
})
Run Code Online (Sandbox Code Playgroud)
使用上面的查询,我期望结果中只有一个字段(标题 =“aaa”)。
我知道如何使用聚合解决这个问题,但我希望有另一种方法来解决它。
谢谢!