当我搜索包含标题'Apple'的文档时:
db.getCollection('items')。find({title:{$ regex:'Apple'}})
标题为“Apple”的文件按预期返回
当我搜索priceA小于priceB的文件时:
db.getCollection('items')。find({“$ where”:“this.priceA< this.priceB”})
priceA小于priceB的文件按预期退回。
然而,当我尝试这样做时:
db.getCollection('items')。find({title:{$ regex:'Apple'}}, {“$ where”:“this.priceA< this.priceB”})
只返回_id字段,而且我的集合中的所有文档都是真的,上面的两个过滤器根本没有应用:
如何应用这两种过滤器?
答案 0 :(得分:2)
您的查询错误尝试此操作。您在投影方法check this out for more details
中传递了第二个错误的条件Mongodb find()方法需要3个参数
<强>条件强>:{title: {$regex: 'Apple'},"$where":"this.priceA < this.priceB"}
<强>投影强>
默认情况下,您不会在投影中指定任何内容,它会返回整个文档,但如果您只想要特定的详细信息,则可以将其传递给 {name:1,email:1}
选项:强>
示例示例为{sort:1,limit:1}
db.getCollection('items').find({title: {$regex: 'Apple'},"$where":"this.priceA < this.priceB"}, {})