Вы можете попробовать агрегацию ниже:
ChoreChart.aggregate([
{ "$match": { "affiliation": affiliation, "year": week.year, "weekNumber": week.number } },
{
$addFields: {
chart: {
$filter: {
input: "$chart",
cond: { $eq: [ "$this.ordinal", 2 ] }
}
}
}
}
])
$ addFields заменяет существующее поле, а $ filter фильтрует внутренний массив. Кроме того, поскольку ваш ordinal
является числом, вам также необходимо указать число, а не строку в вашем запросе.
Вы можете попробовать этот рецепт в Активном состоянии .
Существует также модуль DBFReader , который вы можете попробовать.
Для поддержки памятных полей .
Я предпочитаю dbfpy. Это поддерживает и чтение и запись .DBF
файлы и может справиться с большинством изменений формата. Это - единственная реализация, я нашел, что это могло и считать и записать файлы DBF прежней версии некоторых более старых систем, с которыми я работал.
Если вы все еще проверяете это, у меня есть конвертер GPL FoxPro-to-PostgreSQL по адресу https://github.com/kstrauser/pgdbf . Мы используем его для регулярного копирования наших таблиц в PostgreSQL для быстрого создания отчетов.
Ознакомьтесь с http://groups.google.com/group/python-dbase
. В настоящее время он поддерживает файлы dBase III и Visual Foxpro 6.0 ... не уверен, что изменение макета файла в VFP 9 или нет ...