守则:
repository.find({
where: { $text: { $search: 'strin' }, score: { $meta: 'textScore' } },
take: 10,
});
向我显示错误:第一个月
根据Other Stackoverflows的说法,你必须写这样的东西:
repository.find(
{ $text : { $search : "text to look for" } },
{ score : { $meta: "textScore" } }
)
但这不起作用,因为find只接受一个where参数,而不接受2个参数。
以下是类型:
find(options?: MongoFindManyOptions<Entity>): Promise<Entity[]>;
- FindMany通过跳过和获取扩展FindOne
where?: ObjectLiteral;
所以是的,基本上我没有什么可以做的,我尝试的东西都不管用,如果我去做一个数组,它会抱怨它不是一个对象,所以我不能复制其他stackoverflows所建议的
1条答案
按热度按时间vfh0ocws1#
https://github.com/typeorm/typeorm/blob/e49d0c8740b9dec45448131edc012a920e6fcea2/src/entity-manager/MongoEntityManager.ts#L1038 says:
如果我得到了它,问题是没有文本得分Map到哪里。
options?: MongoFindManyOptions
的投影部分允许您选择要用数据填充模型的哪些属性,但仅此而已:1
是硬编码的,因此无法使用计算值{ $meta: "textScore" }
投影新字段score