当前位置: 首页 > 知识库问答 >
问题:

推入mongoose对象内部的数组

苍恩
2023-03-14

我正在使用mongoose将一个玩家推入mongoose中的玩家数组,当一个玩家加入游戏时。我收到以下错误:“无法规范查询:BadValue未知顶级运算符:$PUSH”

var GameSchema = new mongoose.Schema({
_id: mongoose.Schema.Types.Mixed,
players: [{
  username: String,
  currentRound: Number
}],
// the number represents the qNumber in the questionData.js
// and also the round number for what the player is currently on
questions: [Number]
});
var Game = mongoose.model('Game', GameSchema);

var updateGame = function(req,res,next){
Game.findByIdAndUpdate(
  req.body.code,
  {$push: {"players": {username: "hardcode", currentRound: 1}}},
  {safe: true, upsert: true, new: true},
  function(err, model){
    if (err){
      console.log("ERROR: ", err);
      res.send(500, err);
    }else{
      res.status(200).send(model);
    }
  }
);
};

共有1个答案

岳允晨
2023-03-14

啊,我总是一问就想出解决办法。

结果是,由于我覆盖了模式中的_id键,Game.findByIdandUpdate不起作用。相反,我使用了传入_id键的findOneAndUpdate:

Game.findOneAndUpdate(
{"_id":req.body.code},
{$push: {"players": {username: "hardcode", currentRound: 1}}},
{safe: true, upsert: true, new: true},
function(err, model){
   if (err){
     console.log("ERROR: ", err);
     res.send(500, err);
   }else{
     res.status(200).send(model);
   }
  }
);
 类似资料:
  • 有对象的: 并用我的代码动态生成对象: 我想将这个动态生成的对象推送到初始测试对象,这样,最终obj看起来就像这样:

  • 我正在开发一个使用Expressjs、Mongodb和Mongoose的服务器。我需要将一个元素(字符串)推入“tweets”数组,该数组位于对象(朋友)内部,而对象(朋友)又位于“friends”数组内部,而“friends”数组位于“users”对象内部,该对象在“users”集合中记录。下面是Mongodb集合中的文档的示例: 我需要首先从“users”数组中选择指定的用户名,然后访问这个用

  • 在使用Mongoose查询数组时,我很难得到我期望看到的内容。一个用户可以有许多与他/她的帐户相关联的房间。room对象存储在集合中附加到用户的数组中。只有一个集合叫做Users。 请考虑以下user和Room的两个架构: 我还应该指出,数据库是填充的,因为我可以看到RoboMongo中的数组(在创建用户帐户时创建了1个元素)。 正在填充从控制台输出到show database的示例数据(包括us

  • 我试图从一个Json文件中提取一个对象列表,但是该文件以一个对象开始,该对象包含我需要的对象数组。我是一个新的改造这里是我的文件:接口 控制器 Json的开头 我的对象Pojo 所以我不需要jsonObject中的任何初始信息,我所需要的只是元素jsonArray中的对象列表,它由两个稍微不同的对象组成,一个有nodes[],一个没有。因此POJO中有2个构造函数? 我如何设置改装来处理这件事?与

  • 我花了很长时间寻找答案,但我确信我找不到合适的词来描述我所追求的东西。 基本上,我有一个名为'people'的mongodb集合,该集合的模式如下所示: 现在,我有了一个非常基本的express应用程序,它连接到数据库,并用一个空的friends数组成功地创建了'people'。 在应用程序的次要位置,一个表单就位,可以添加好友。该表单接受firstName和lastName,然后发布name字段