我試圖向數組中添加一個新對象到我的mongodb文檔。無法將自定義對象添加到mongoDB文檔數組中
我有一個使用MongoDB的NodeJS項目,它有一個名爲「Teste」的集合,我在那裏保存一些隨機數據。
其中數據是一個名爲「ArrayTeste」的數組。目前它只保存多個字符串,因爲我將我的輸入命名爲相同的東西,所以它會自動爲我執行。
但我不想將每個元素保存爲單個字符串,我需要獲取這些信息,將它們分組到一個對象中,然後將其添加到數組中。
這裏是的NodeJS我的代碼片段:
ServicosModel.prototype.Teste = function (req, res) {
console.log("Metodo Teste");
var query =
{
$push:
{
ArrayTeste:
{
Dado1: req.body.Dado1,
Dado2: req.body.Dado2
}
}
}
console.log(query)
this._connection.open(function (errConn, mongoClient) {
console.log("Entrou open")
if (errConn) {
res.end("Deu erro" + errConn);
}
mongoClient.collection("teste", function (errColl, collection) {
if (errColl) {
res.end("Deu erro" + errColl);
}
console.log("Entrou collection")
collection.update(query, function (errUpdate, result) {
console.log("Entrou update")
if (errUpdate) {
res.end("Deu erro" + errUpdate);
} else {
res.end("Deu certo " + result);
}
});
});
});
}
這裏是MongoDB的文檔結構:
{
"_id" : ObjectId("595bf19febbf3c14e481bc28"),
"id" : "2",
"Titulo" : "TItulo do negocio",
"ArrayTeste" : [
"dado1",
"dado2"
]
}
的 「ID」 參數是一個由我創建容易在以前的測試中使用的$ elemMatch,所以我不必搜索文檔的_id。
當我運行的代碼和插入內容的投入,我提出了這個錯誤:
(node:8712) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): MongoError: document must be a valid JavaScript object
,我絕對沒有發生的事情的想法。應用程序只是凍結。我已經搜索了這些帖子,並嘗試了一些使用$ set和$ addToSet的東西,但同樣的錯誤仍然存在。
任何幫助表示讚賞,在此先感謝!
奏效,非常感謝。我看到的教程將這兩個添加到一個對象中。這讓我很難理解 –