是否可以查询 通过 使用单个查找规格的DBREF?

用户收集

{
    'age': 30
}

帖子收藏

{
    'user': DBRef('user', ...)
}

是否可以在单个查找步骤中查询所有帖子谁的用户是30个?如果没有,可以创建一个JavaScript函数来处理多阶段操作是明智的,还是会导致阻塞问题?

有帮助吗?

解决方案

不可能这样做。我会推荐:

a)更改数据模型,以便所有数据都在单个文档中(可能取决于您的情况)。

b)查询第30个用户,然后进行第二个查询以获取该列表中用户为$的帖子。我会做这个客户端,而不是使用服务器端JS或类似的东西。

其他提示

我使用python驱动程序,请原谅我的不那么蒙古的语法:

users = list(db.Users.find({'Age':30}))
posts = list(db.Posts.find({'User':{'$in':users}}))

安装Python BSON 包裹。并尝试为例。

import pymongo
from pymongo import MongoClient
from bson.dbref import DBRef

client = MongoClient('ip', 27017)

client.the_database.authenticate('user', 'password', source='db_name')
db = client['db_name']
user = db['user']
user_id = user.find_one({'email': 'xxxxx@gmail.com'}).get('_id')

client_user_relation = db['client_user_relation']
print(client_user_relation.find_one())
print(user_id)
print(DBRef(collection = "user", id = user_id))
print(client_user_relation.find_one({'user': DBRef(collection = "user", id = user_id)}))
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top