1
我剛開始學習mongodb並開始爲自己的業務的個人應用程序。Mongo插入/更新 - 一對多模型
我會在這裏解釋我的問題,因爲我無法自己解決,我嘗試了很多方法。
我創建一個對象是這樣的:
db.morosos.insert({
"idlor": "XXXXX",
"comunidad": "XXXXX",
"vivienda": "XXXXX",
"demandado": "XXXXX",
"importe": "XXXXX",
"datos": [
{
"fecha": "XXXXXX",
"dato": "XXXXXX"
}],
"date": new Date("<dd-mm-YYYY>")})
然後我要添加新的「DATOS」新的「出生日期」和新的「拿督」之類的數組。
我嘗試使用:
db.morosos.updateOne(
{ "idlor" : "XXXXX" },
{ $inc: { "datos" : { "fecha": "XXXXX", "dato": "XXXX" } } } )
db.morosos.updateOne(
{ "idlor" : "XXX" },
{ $push: { "datos" : { "fecha": "XXXXX",
"dato": "XXXX" } } } )
db.morosos.update(
{ "idlor" : "XXXX" },
{
$addToSet: {
"datos": {
"fecha": "XXXXX",
"dato": "XXXXX"
}
}
} )
而且任何人的作品就像我想,它只是改變了信息或扔我一個失敗,如:所以此刻我不
WriteResult({
"nMatched" : 0,
"nUpserted" : 0,
"nModified" : 0,
"writeError" : {
"code" : 16837,
"errmsg" : "Cannot apply $addToSet to a non-array field. Field named 'datos' has a non-array type Object in the document _id: ObjectId('58c81ba0fb02f3066e2af169')"
}})
WriteResult({
"nMatched" : 0,
"nUpserted" : 0,
"nModified" : 0,
"writeError" : {
"code" : 16837,
"errmsg" : "The field 'datos' must be an array but is of type Object in document {_id: ObjectId('58c81ba0fb02f3066e2af169')}"
}})
不知道該怎麼做,我仍然在尋找如何解決它。
謝謝。
感謝嘗試幫助,但兄弟,XXX是公正,例如穿上寫信息。使用X作爲變量,這裏認爲XXX與XXXXX相同。 –
你確定mongodb服務器3.2或更高版本有updateone命令?確切的命令似乎工作在我的3.2在Ubuntu上 –
我使用mLab免費服務器。 mongod版本:3.2.11(MMAPv1) –