2016-06-15 50 views
0

我有一個學校項目一個很大的問題:使用Node.js的添加對象的MongoDB的陣列

我創建了一個使用MongoDB的數據庫和Node.js的作爲服務器站點中,我有一個服務器方法將產品添加到購物車,我試圖添加到購物車數組對象是這樣的:

{"cart" : {"idproduct" : idproduct, "collectionproduct" : 'comicbooks'}} 

而且我使用添加對象的數組的代碼是這樣的:

db.collection("users").update({"_id": new ObjectId(userid)}, {$push: {"cart" : {"idproduct" : new ObjectId(idproduct), "collectionproduct" : 'comicbooks'}}}, { "$upsert": true });

真正的奇怪事情是,我已經嘗試過mongo本身,它的工作,但是當我嘗試運行節點代碼,然後它不,但它甚至沒有給我一個錯誤。

我甚至嘗試過與$addToSet同樣的事情,再次,與節點不起作用,但它不會給我任何錯誤,但在mongo它的作品。

如果有人知道什麼是問題,那麼請儘快幫助我。

+0

你喜歡用貓鼬連接到mongoDB或只是mongoDriver嗎? – sachgits

+0

只是mongoDriver我猜 –

回答

0

如果使用mongodb-native,那就試試這個

var insertDocuments = function(db, callback) { 
    var collection = db.collection('users'); 
    collection.insert([ 
    "cart" : {"idproduct" : idproduct, "collectionproduct" : 'comicbooks'}} 
    ], function(err, result) { 
    callback(result); 
    }); 
} 

,並呼籲使用

insertDocuments(db, function() { 
    db.close(); 
}); 

是這個回答你的問題的功能?

+0

不幸的是它不起作用,謝謝 –

+0

問題是什麼?也許給我更多的代碼,你如何連接到你的mongo服務器 –

+0

問題是,它不會給出任何錯誤,但它不執行操作,如果我在啓動函數後在mongo上執行db.users.find()。pretty(),我希望在用戶看到單擊按鈕購物車數組的我想要插入的對象。我不完全知道問題實際在哪裏,但它不起作用。 –