Frage

Ist es möglich, Abfrage durch ein dBref einer Einzelfundeinmessung spec mit?

Benutzer Sammlung

{
    'age': 30
}

post Sammlung

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

Ist es möglich, für alle Post abzufragen, die Benutzer Zeit sind 30 in einem einzigen Schritt finden? Wenn nicht, wäre es klug, eine JavaScript-Funktion zu erstellen, den mehrstufigen Betrieb zu handhaben oder wird diese Ursache Blockierungsprobleme?

War es hilfreich?

Lösung

es ist nicht möglich, das zu tun. Ich würde empfehlen, entweder:

a) Ihr Datenmodell zu ändern, so dass alle Daten in einem einzigen Dokument ist (vielleicht nicht möglich sein, je nach Fall).

b) Abfragen für Benutzer, die 30 ersten sind, und dann eine zweite Abfrage zu tun Beiträge zu bekommen, wo Benutzer $ in dieser Liste ist. Ich würde diese Client-Seite tun anstatt serverseitige JS oder so etwas.

Andere Tipps

Ich benutze einen Python-Treiber, verzeiht so meine nicht-so-mongodb Syntax:

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

Installieren python BSON Paket. und versuchen, wie zB.

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)}))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top