【发布时间】:2021-03-07 06:02:54
【问题描述】:
我有一个 Person 模型,其字段是一个值数组,我的输入是另一个值数组。
我需要找到两个数组之间有匹配值的所有人:
const Person1 = {
inner: { field: ["1", "2", "3"] }
}
const Person2 = {
inner: { field: ["2", "3"] }
}
const Person3 = {
inner: { field: ["1"] }
}
const Person4 = {
inner: { field: ["3"] }
}
const searchAgainst = ["1", "2"]
所以给定这 4 个具有这些值的人,当使用 searchAgainst 搜索 Person 模型时,它应该返回 Person1, Person2, Person3,因此即使只包含 searchAgainst 的一个值,也应该返回它。
我尝试过这样做:
const foundPeople = await Person.find({ inner: { field: { $in: searchAgainst }}});
const foundPeople = await Person.find({ "inner.field": { $in: searchAgainst }});
但它不起作用,它没有返回任何找到的人。
【问题讨论】: