Это то, что происходит, когда вы используете переменное имя отрицательного значения, вам нужно инвертировать их значения. Следующее было бы легче понять:
sorted = False
while not sorted:
...
С другой стороны, логика алгоритма немного выключена. Вам нужно проверить, менялись ли два элемента во время цикла for. Вот как я писал бы это:
def bubble(values):
length = len(values) - 1
sorted = False
while not sorted:
sorted = True
for element in range(0,length):
if values[element] > values[element + 1]:
hold = values[element + 1]
values[element + 1] = values[element]
values[element] = hold
sorted = False
return values
Вы смотрели на ссылку ниже?
https://docs.mongodb.com/manual/reference/operator/query/or/
Там вы можете найти, как добавить несколько выражений в одном запросе. , Если вы хотите искать заголовки, где заголовок может быть равен A или B, используйте запрос, подобный этому: db.inventory.find( { $or: [ { title: "A" }, { title: "B"} ] } )
.
Редактировать
Если вам нужны данные из db для сопоставления обоих выражений в запросе, используйте что-то вроде этого:
Product.find( { $and: [{ address:{city: "CityName"} }, { address: {country : "UK" } } ] } )