Tri*_*Man 5 mongoose mongodb node.js
我正在尝试进行一个查找,它将获得所有具有标题或desc的文档,其中包含正则表达式(有效),然后进一步过滤以仅包含将"private"标志设置为false或者"user"字段设置为给定的userId.
这是我到目前为止所做的...
FCSet.find({}, {"flashCards":0}).or([{ 'title': { $regex: re }}, { 'desc': { $regex: re }}]).or([{ 'private': false}, { 'user': 'userId'}]).sort('title')
Run Code Online (Sandbox Code Playgroud)
这应该只返回6行但它返回56.如果我取出第2或()然后它适用于按标题/ desc过滤.我猜我会以错误的方式去做.
有人可以帮我弄清楚如何正确地做到这一点?
hei*_*nob 13
你必须将ORs放入AND:
FCSet.find(
{ "flashCards": 0 },
$and: [
{
$or: [
{ 'title': { $regex: re } },
{ 'desc': { $regex: re } }
]
},
{
$or: [
{ 'private': false },
{ 'user': 'userId' }
]
}
]
).sort('title')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12440 次 |
| 最近记录: |