sql >> Database >  >> NoSQL >> MongoDB

Pymongo Regex $alle meerdere zoektermen

Je bouwt een string in je for-lus, niet een lijst van re.compile voorwerpen. Je wilt:

collected_x = []                            # Initialize an empty list

for x in input:                             # Iterate over input
  collected_x.append(re.compile(x))         # Append re.compile object to list

collected_x_cut = collected_x[:-2]          # Slice the list outside the loop

cursor = db.collection.find({"key": {"$all": collected_x_cut}})

Een eenvoudige benadering zou zijn om map te gebruiken om de lijst op te bouwen:

collected = map(re.compile, input)[:-2]
db.collection.find({"key": {"$all": collected}})

Of een list comprehension :

collected = [re.compile(x) for x in input][:-2]
db.collection.find({"key": {"$all": collected}})



  1. MongoDB C# verbindingen/ontkoppelingen (officiële driver)

  2. JSON lezen, schrijven en opslaan met Node op Heroku

  3. Kan azure-bestandsshares niet koppelen als mongodb-volume in Azure-containerinstanties

  4. Een Sharded-verzameling specificeren met Spring Data MongoDB