Pymongo外部左侧通过查找+通过Regex搜索
我有2个集合,我想通过正则表达式搜索所有用户,但仅返回用户
在views
中不存在。
/* Users */
{
"user_id" : "SB4mKAxaBijQXnS73",
"username" : "user1"
},
{
"user_id" : "SB4mdasd3ijQXnS73",
"username" : "user2"
}
/* Views */
{
"view_id " : "rhqioBkePzGCrRFLp",
"recipient_username" : "user1"
}
我使用的是beanie,因此函数必须是异步,并且收集是从pydantic类调用用户
和view
。
更新: 到目前为止,我的代码:
user = await User.aggregate([
{'$lookup':
{
'from': View.get_collection_name(),
'localField': "username",
'foreignField': "recipient_username",
'let': { "username": "username", "recipient_username": "username"},
'pipeline': [{ "$match": { "$expr": { "$not": { "$in": [ "$username", "$$username" ] }}}}],
'as': 'out'
}}]).to_list()
return user
我的管道无法正确评估我的表达。知道为什么吗?
I have 2 collections and I want to search all users by regular expression but only return users
that don't exist in views
.
/* Users */
{
"user_id" : "SB4mKAxaBijQXnS73",
"username" : "user1"
},
{
"user_id" : "SB4mdasd3ijQXnS73",
"username" : "user2"
}
/* Views */
{
"view_id " : "rhqioBkePzGCrRFLp",
"recipient_username" : "user1"
}
I'm using beanie, so function has to be async and collection is called from pydantic classes User
and View
.
UPDATED:
My code so far:
user = await User.aggregate([
{'$lookup':
{
'from': View.get_collection_name(),
'localField': "username",
'foreignField': "recipient_username",
'let': { "username": "username", "recipient_username": "username"},
'pipeline': [{ "$match": { "$expr": { "$not": { "$in": [ "$username", "$username" ] }}}}],
'as': 'out'
}}]).to_list()
return user
My pipeline does not properly evaluate my expression. Any idea why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论