Я конвертирую базу данных SQLite в базу данных MongoDB, используя pymon go. Кажется, я не могу обновить связанные поля с помощью ObjectIds.
В javascript моя схема статей выглядит следующим образом:
const ArticleSchema = new mongoose.Schema({
title: {
type: String,
required: true,
},
body: {
type: String,
required: true,
},
category: {
type: Schema.Types.ObjectId,
ref: "Category",
required: true,
},
});
И модель категорий:
const CategorySchema = new mongoose.Schema({
name: {
type: String,
required: true,
},
weigth: {
type: Number,
required: true,
},
articles: [
{
type: Schema.Types.ObjectId,
ref: "Article",
},
],
});
Данные находятся в базе данных, и я просто извлекаю их и перебираю все строки с помощью запроса двойного соединения, поэтому я также получаю категорию. Моя проблема заключается в попытке добавить идентификатор статьи в массив Articles в python или эквивалент javascript pu sh. Код, который я пробую, следующий:
for row in rows:
# get the category
cat = categories.find_one({'name': row[4]})
cat_id = str(cat['_id'])
# populate the article
article = {
'title': row[0],
'body': row[1],
'category': str(cat["_id"])
}
id = articles.insert_one(article).inserted_id
categories.update({
'_id': cat_id
},
{
'$push': {'articles': id}}
)