在我们的MongoDB-Node.js-Mongoose设置中:
我们已经创建了一个text search index,我们也能够从它的集合中找到一个单词:
db.sampleCollection.find( { $text: { $search: "wordToSearch" } })
到目前为止,没有问题......
我们要求如果sampleCollection
中的文档将字段private
设置为true
,那么我们需要从结果集中排除这些文档。
可能我们可以添加这样的东西:
.where({ private: true})
它看起来像是一个额外的呼叫而且效率不高。有没有更好更快的方法呢?
如果你想对MongoDB说:“给我所有文本'wordToSearch'并且有一个名为'private'的属性不等于true”,那么下面的查询应该有效:
db.sampleCollection.find({ private: { $ne: true }, $text: { $search: "wordToSearch" } })