根据字段值从文本搜索结果集中排除某些文档的优化?

问题描述 投票:0回答:1

在我们的MongoDB-Node.js-Mongoose设置中:

我们已经创建了一个text search index,我们也能够从它的集合中找到一个单词:

db.sampleCollection.find( { $text: { $search: "wordToSearch" } })

到目前为止,没有问题......

我们要求如果sampleCollection中的文档将字段private设置为true,那么我们需要从结果集中排除这些文档。

可能我们可以添加这样的东西:

.where({ private: true})

它看起来像是一个额外的呼叫而且效率不高。有没有更好更快的方法呢?

javascript node.js mongodb optimization mongoose
1个回答
1
投票

如果你想对MongoDB说:“给我所有文本'wordToSearch'并且有一个名为'private'的属性不等于true”,那么下面的查询应该有效:

db.sampleCollection.find({ private: { $ne: true }, $text: { $search: "wordToSearch" } })
© www.soinside.com 2019 - 2024. All rights reserved.