MongoDB更新功能不适用于Mongoose

时间:2018-03-07 04:32:17

标签: javascript mongodb mongoose

我正在尝试在MongoDB中的文档中插入一个新字段,但在查询后数据库没有更改。 这是我的数据库的单个元素:

{
"_id" : ObjectId("5a9f5f4bb9ba6117b5551f7d"),
"userId" : "user123",
"name" : "Device zm3",
"category" : [
    "pm10",
    "pm25",
    "temperature"
],
"__v" : 0}

我希望有这样的东西:

{
"_id" : ObjectId("5a9f5f4bb9ba6117b5551f7d"),
"userId" : "user123",
"name" : "Device zm3",
"category" : [
    "pm10",
    "pm25",
    "temperature"
],
"data": 5
"__v" : 0}

我使用此查询:

Device.update({
        'userId': 'user123'
      }, {
        $set: {
          'data': 5
        }
      }, {
        upsert: true,
      }

我正在尝试使用已存在于数据库中的字段,例如“名称”或“类别”,在这种情况下,解决方案可以正常工作。

1 个答案:

答案 0 :(得分:2)

如果您要使用Mongoose添加字段,它也应该在您的Mongoose架构中。因此,如果要使用Mongoose,则必须向设备架构添加“数据”。这就是为什么已经在对象/模式中的字段(如“名称”或“类别”)可以工作但新的字段不起作用。