我有以下形式的文件集合:
{ _id: ObjectId(...)
, title: "foo"
, tags: ["bar", "baz", "qux"]
}
查询应该找到所有带有这些标签的文档。我目前使用这个查询:
{ "tags": { "$in": ["bar", "hello"] } }
它有效;返回所有标记为“bar”或“hello”的文档。
但是,我想按相关性排序,即匹配的标签越多,文档应该出现在结果中的时间越早。例如,["bar", "hello", "baz"]
在结果中标记的文档应该高于["bar", "baz", "boo"]
为查询标记的文档["bar", "hello"]
。我怎样才能做到这一点?