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

$addtoset对象到mongoose中的数组[重复]

鱼浩荡
2023-03-14

我有一个收藏,存储一些产品的文档。在文档中,有一个数组evaluation来存储用户对产品的价格评估对象。

下面是一个用户对象的示例:

var data = {user_id:90,price:400}
{
  "_id": 54b13f52604fc5d242d4aa68,
  "__v": NumberInt(0),
  "evaluation": [
    {
      "price": NumberInt(14616),
      "user_id": NumberInt(91),
      "_id": ObjectId("54b13f5e604fc5d242d4aa6b") // Why is it added?
    },
    {
      "price": NumberInt(16211),
      "user_id": NumberInt(92),
      "_id": ObjectId("54b140d1604fc5d242d4aa74") //
    }
  ],
  "product": [
   {
      "title": "ABC",
      "model_id": "382",
      "id": "513",
      "category": "1",
      "src": "xxx.jpg"
    }
  ],
  "timestamp":ISODate("2015-01-10T15:03:46.310Z")
}
var evaluation = new mongoose.Schema({
       product:[],
       timestamp : { type : Date, default: Date.now },
       evaluation:[{user_id:Number,price:Number}],
},{strict:false});

var models = {
      Eva:mongoose.model('Evaluation',evaluation)
    };

app.js

var mongo_models = require('./db/mongo_model')(mongoose);
Eva = mongo_models.Eva;

io.on('connection', function(socket){
  socket.on("evaluation",function(d){
    var data = {user_id:user_id,price:d.price};
    Eva.update({_id:d.tid},{$addToSet:{evaluation:data}}).exec();
  })
})

共有1个答案

子车凯泽
2023-03-14

通过声明元素的内联架构并禁用_id,可以防止Mongoose向Evaluation数组元素添加_id字段:

var evaluation = new mongoose.Schema({
   product:[],
   timestamp : { type : Date, default: Date.now },
   evaluation:[Schema({user_id:Number,price:Number}, {_id: false})],
},{strict:false});
 类似资料:
  • 假设我在Mongoose模式上有这个数组属性(“articles”): 我如何使用 $addToSethttps://docs.mongodb.org/manual/reference/operator/update/addToSet/ 要通过检查hashtag的值来添加到此数组,以查看它是否唯一? 例如,如果我想将以下对象添加到上述数组中,我希望Mongo将其作为副本“拒绝”: 因为hashta

  • 问题内容: 说我在猫鼬模式上有这个数组属性(“文章”): 我该怎么用 $ addToSet https://docs.mongodb.org/manual/reference/operator/update/addToSet/ 通过检查主题标签的值以查看其是否唯一来添加到此数组? 例如,如果我要将以下对象添加到上述数组中,则希望Mongo将其“重复”删除: 因为hashtag = foo已经被使用

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

  • 我是mongoDB新手,在使用Mongoose从mongoDB中的数组中删除团队对象时遇到困难。我的用户收藏看起来像; 我的移除路线看起来像; 控制台在用户之前和之后记录日志。更新是完全相同的,我没有得到任何错误抛出。控制台的输出。日志(错误、数据)最终被删除 我不知道该怎么解释。我也尝试过不按这里的建议传入userID;https://stackoverflow.com/a/24289161/5

  • 我正在使用mongoose将一个玩家推入mongoose中的玩家数组,当一个玩家加入游戏时。我收到以下错误:

  • 如何在两个属性之后对对象数组进行分组?在以下情况下是否可以使用减少? 例如:按国家和城市将以下数组分组,并对“年龄”属性求和: /*预期结果:*/