Pregunta

¿Es posible consulta a a DBRef utilizando una sola especificación hallazgo?

colección usuario

{
    'age': 30
}

colección de publicación

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

¿Es posible la consulta para todos puesto que sus usuarios son 30 en un solo paso hallazgo? Si no es así, ¿sería aconsejable crear una función javascript para manejar la operación multi-etapa o será que causa problemas de bloqueo?

¿Fue útil?

Solución

que no es posible hacer eso. Yo recomendaría cualquiera:

a) cambiar su modelo de datos de manera que todos los datos están en un solo documento (puede que no sea posible dependiendo de su caso).

b) las consultas a los usuarios que son 30 primero, y luego hacer una segunda consulta para obtener puestos donde usuario es $ en esa lista. Me gustaría hacer esto lado del cliente en lugar de utilizar el lado del servidor JS ni nada de eso.

Otros consejos

Yo uso un controlador de Python, por lo perdona mi sintaxis no tan mongodb:

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

Instalar Python paquete BSON. y tratar como ejemplo.

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)}))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top