Да, исходная папка не находится в пути Python, если вы cd
в каталоге тестов.
У вас есть 2 варианта:
import sys, os
myPath = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, myPath + '/../')
PYTHONPATH=../
. Вы можете присвоить свой update
объект запроса, который предотвращает обновление, если name
уже присутствует в profile_set
. В оболочке:
db.coll.update(
{_id: id, 'profile_set.name': {$ne: 'nick'}},
{$push: {profile_set: {'name': 'nick', 'options': 2}}})
Таким образом, это будет выполнять только $push
для документа с сопоставлением _id
и где нет элемента profile_set
, где name
есть 'nick'
.