【问题标题】:Using Node.js to add Object in a MongoDB Array使用 Node.js 在 MongoDB 数组中添加对象
【发布时间】:2016-06-15 22:58:06
【问题描述】:

我的学校项目有一个很大的问题:

我创建了一个使用 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 尝试了同样的事情,并且再次使用 node 不起作用,但它没有给我任何错误,但在 mongo 中它可以工作。

如果有人知道问题出在哪里,请尽快帮助我。

【问题讨论】:

  • 您喜欢使用 mongoose 连接到 mongoDB 还是只使用 mongoDriver?
  • 我猜只是 mongoDriver

标签: arrays node.js mongodb mongodb-query


【解决方案1】:

如果你使用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();
});

这是回答你的问题吗?

【讨论】:

  • 有什么问题?,也许给我更多关于你如何连接到你的mongo服务器的代码
  • 问题是它没有给出任何错误,但它不执行操作,如果我在启动后在 mongo 上执行 db.users.find().pretty()我希望在单击按钮购物车数组的用户中看到我要插入的对象的函数。我不完全知道问题出在哪里,但它不起作用。
  • 我用 console.log("we are here"); 再次尝试了你的代码我注意到一些奇怪的事情:日志没有出现,所以有些东西不允许该功能工作,无论如何它仍然没有给我任何错误并且仍然没有将对象添加到任何用户,但这是一个好的开始,我会试着找出什么不起作用,然后告诉你。
猜你喜欢
  • 2016-06-19
  • 2021-09-01
  • 1970-01-01
  • 2019-04-23
  • 2016-11-10
  • 2021-11-06
  • 1970-01-01
  • 2021-07-04
  • 2019-06-13
相关资源
最近更新 更多