在 Mongo 中搜索匹配的 ID 或属性
目标:
我希望允许用户通过 ID 搜索文档,或允许其他基于文本的查询。
代码:
l_search_results = list(
cll_sips.find(
{
'$or': [
{'_id': ObjectId(s_term)},
{'s_text': re.compile(s_term, re.IGNORECASE)},
{'choices': re.compile(s_term, re.IGNORECASE)}
]
}
).limit(20)
)
错误:
<无论您搜索什么>不是有效的 ObjectId
Goal:
I want to allow the user to search for a document by ID, or allow other text-based queries.
Code:
l_search_results = list(
cll_sips.find(
{
'$or': [
{'_id': ObjectId(s_term)},
{'s_text': re.compile(s_term, re.IGNORECASE)},
{'choices': re.compile(s_term, re.IGNORECASE)}
]
}
).limit(20)
)
Error:
<Whatever you searched for> is not a valid ObjectId
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您将
s_term
传递给ObjectId
构造函数时,它必须是有效的对象 ID(或至少采用正确的格式)。由于它有时不是 ID,这解释了为什么您会收到异常。尝试这样的事情:
s_term
needs to be a valid object ID (or at least in the right format) when you pass it to theObjectId
constructor. Since it's sometimes not an ID, that explains why you get the exception.Try something like this instead: