Mongodb/Pymongoのdbrefを照会する方法は?
質問
クエリすることは可能ですか? 終えた 単一の検索仕様を使用したdbref?
ユーザーコレクション
{
'age': 30
}
ポストコレクション
{
'user': DBRef('user', ...)
}
すべての投稿をクエリすることは可能ですか?そうでない場合、マルチステージ操作を処理するためにJavaScript関数を作成するのが賢明でしょうか、それともブロックの問題を引き起こすでしょうか?
解決
それをすることはできません。どちらかをお勧めします:
a)すべてのデータが単一のドキュメントにあるようにデータモデルを変更します(ケースによっては不可能かもしれません)。
b)最初に30であるユーザーをクエリし、次に2番目のクエリを実行して、ユーザーがそのリストにある投稿を取得します。サーバー側の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)}))
所属していません StackOverflow