MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Pymongo Regex $всички множество думи за търсене

Вие изграждате низ във вашия for цикъл, а не списък с re.compile обекти. Искате:

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}})

Един прост подход би бил да използвате map за съставяне на списъка:

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

Или list comprehension :

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Премахване на дублиращи се записи с MapReduce

  2. Как да получите последния документ за всеки ден в колекцията на MongoDB?

  3. Някакви подробни и конкретни причини защо MongoDB е много по-бърз от SQL DB?

  4. Премахване на дубликати на mongodb

  5. MongoCursorException - Курсорът не е намерен (MongoDB PHP драйвер)