Traduciendo mysql no en mongodb -- mongodb campo con pymongo camp Relacionados El problema

Translating MySQL NOT IN to MongoDB


0
vote

problema

Español

Recientemente comencé a usar MongoDB, y al tiempo que traduce las consultas, me he topado con un problema al tratar de traducir MySQL no en la consulta.

Lo que estoy tratando de hacer es encontrar identificaciones que no están presentes en otra colección. Necesito una forma de devolver la cantidad de estas identificaciones que hay y luego una lista de estos ID.

En MySQL, estas ID están en una tabla llamada songs y se denominan spotify_id . Estoy revisando contra una tabla llamada artists donde se llaman los ID public class StateSurveyAssignment{ public long Id { get; set; } public string State { get; set; } public long RequestTypeId { get; set; } public long SurveyId { get; set; } } 0 .

MySQL QUERY:

  public class StateSurveyAssignment{     public long Id { get; set; }     public string State { get; set; }     public long RequestTypeId { get; set; }     public long SurveyId { get; set; } } 111  

MI CÓDIGO CURTURO USANDO MONGODB:

  public class StateSurveyAssignment{     public long Id { get; set; }     public string State { get; set; }     public long RequestTypeId { get; set; }     public long SurveyId { get; set; } } 2  

La consulta de MongoDB parece devolver un número positivo de documentos, incluso cuando todas las ID deben estar presentes en ambas colecciones. La consulta MySQL funciona perfectamente en la misma base de datos.

¿Hay una mejor manera de realizar una consulta en MongoDB?

¡Gracias!

Original en ingles

I've recently started using MongoDB, and while translating queries, I've stumbled upon a problem when trying to translate MySQL NOT IN query.

What I'm trying to do is find ids that are not present in another collection. I need a way to return how many of these ids there are and then a list of these ids.

In MySQL, these ids are in a table called songs and are named spotify_id. I am checking against a table named artists where the ids are called track_id.

MySQL Query:

SELECT spotify_id FROM songs WHERE spotify_id NOT IN (SELECT artists.track_id FROM artists) 

My current code using MongoDB:

track_ids = artists.find({}, {'track_id': 1}) track_ids_list = [d.get('track_id') for d in track_ids]  # Getting amount of ids not present in artists tracks_num = songs.count_documents({'spotify_id': {'$nin': track_ids_list}})  # Getting tracks not present in artists tracks = songs.find({'spotify_id': {'$nin': track_ids_list}}) 

The MongoDB query seems to return a positive number of documents, even when all of the ids should be present in both collections. The MySQL query works perfectly on the same database.

Is there a better way to perform a NOT IN query in MongoDB?

Thank you!

     
     
     

Lista de respuestas


Relacionados problema

4  ¿Cómo obtener un solo valor de una consulta de Pymongo de un mongodb en Python?  ( How to get a single value from a pymongo query of a mongodb in python ) 
Estoy tratando de usar Pymongo. Todo está bien hasta ahora, puedo conectarme a MongoDB, insertar y hacer consultas. El problema que enfrento es obtener datos ...

0  ¿Cómo eliminar un EmbedDedObject de un campo de list?  ( How to remove an embeddedobject from a listfield ) 
Tengo este código: Miembro de clase (Modelos.Model): Objetos = MONGODBMANOGER () fav_members = ListField(EmbeddedModelField('Member')) def del_fav_...

13  MongoDB: Encuentre el elemento mínimo en la matriz y elimínelo  ( Mongodb find the minimum element in array and delete it ) 
Tengo documentos en MongoDB, uno de ellos parece esto: { "_id" : 100, "name" : "Something", "items" : [ { "item" : 47, "color" : "red" ...

1  Inserte la marca de tiempo de Pandas en MongoDB  ( Insert pandas timestamp into mongodb ) 
Estoy tratando de insertar un frama de datos PANDAS en MongoDB usando Pymongo. df.head() Porque el índice si el contexto de los pandas es un QImage...

2  ¿Cómo puedo ejecutar un archivo de script JS de Pymongo?  ( How can i execute a js script file from pymongo ) 
Tengo un trabajo MapReduce para mi base de datos Mongodb implementada en un archivo de script de JavaScript. Lo he probado desde la línea de comandos y shell ...

3  ¿Cómo puedo abrir una instancia de GridoOut de un archivo en un cuadrícula en Pymongo?  ( How can i open a gridout instance of a file in a gridfs in pymongo ) 
Digamos que tengo un archivo PDF que quiero abrir en un script de Python en la aplicación predeterminada de los sistemas para PDF. primero, si se mantiene e...

3  Mongo AddToset Múltiples objetos en una matriz  ( Mongo addtoset multiple objects into one array ) 
Estoy tratando de usar $ AddToset para agregar múltiples objetos a una sola matriz cuando se agrega en Mongo. El formato de los datos puede no ser el mejor,...

2  Pymongo y Pyramid Configure  ( Pymongo and pyramid configure ) 
Estoy tratando de configurarme la aplicación Pyramid como https://github.com /niallo/pyramid_mongodb/blob/master/pyramid_mongodb/paster_templates/pyramid_m...

0  Rs.Stepdown usando Pymongo  ( Rs stepdown using pymongo ) 
Estoy tratando de renunciar a MongoDB primario con Script de Python. Ve a la siguiente salida en mi salida. ¿Hay alguna forma en que puedo marcar el código de...

0  Insertar datos de la lista de Python a MongoDB  ( Inserting list data from python into mongodb ) 
Estoy enfrentando un problema al insertar datos de Python a MongoDB. Soy capaz de conectarme al mongodb y leer los datos (por lo que los problemas de conexión...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos