我有一个mongoDB用于issues
列表。这个记录有一个children
属性,它首先是一个空列表。下一次出现标题相同的问题时,我希望附加到已创建的条目。你知道吗
我正在尝试下面的方法,有点奏效。但是当我尝试使用$addToSet时出现了一个错误。你知道吗
我得到的错误是:
Updating the path 'children' would create a conflict at 'children'
这就是我目前正在努力做的。你知道吗
db.issues.update_one({'title': issue['title']},
{
"$setOnInsert": {"insertion_date": now, "children": []},
"$set": {"last_update_date": now},
"$addToSet": {"children": {'title': issue['title'], 'date': now} },
},
upsert=True)
第一次创建条目时,应该如下所示
{
"_id" : ObjectId("5b588b305b2eec7d7029fb4a"),
"title" : "title_1",
"last_update_date": ISODate("2018-07-25T14:41:50.168Z"),
"children" : [],
}
下次出现具有相同标题的条目时,应该将其附加到该记录的子项。由于时间戳的原因,$addToSet应该是唯一的,这样它就不会是添加到子列表中的相同条目
{
"_id" : ObjectId("5b588b305b2eec7d7029fb4a"),
"title" : "title_1",
"children" : [
{
"title": title_1,
"date": ISODate("2018-07-25T14:41:50.168Z")
}
],
}
如果我这样做,它的工作,但第一个项目也将添加到儿童的关键,而不是它是一个空列表。你知道吗
db.issues.update_one({'title': issue['title']},
{
"$setOnInsert": {"insertion_date": now},
"$set": {"last_update_date": now},
"$addToSet": {"children": {'title': issue['title'], 'date': now}},
},
upsert=True)
给出以下结果:
{
"title" : title_1,
"children" : [
{
"title" : "title_1",
"date" : ISODate("2018-07-25T15:55:45.134Z")
}
],
}
目前没有回答
相关问题 更多 >
编程相关推荐