执行mongo命令时出错

时间:2017-11-28 22:02:24

标签: json mongodb mongoose mongodb-query mongoid

我创建了一个包含以下命令的集合:

db.device_states.documentKey.insert({"device":"nest_kitchen_thermo"})

当我尝试执行以下命令时,出现错误:

db.device_states.watch( {
     $match: {
             "documentKey.device": {
                   $in : [ "nest_kitchen_thermo"]
             },
             operationType: "insert"
     }
});
  

语法错误:缺少:属性id:

之后

更新的集合如下所示:

{ 
    _id: <resume_token>,
    operationType: 'insert',
    ns: {db:'example',coll:"device_states"},
    documentKey: { device:'nest_kitchen_thermo'},
    fullDocument: { 
       _id : ObjectId(),
       device: 'nest_kitchen_thermo',
       temp: 68
    }
}

1 个答案:

答案 0 :(得分:0)

在Mongo shell中,没有这样的查询属性watch$match是聚合管道的一部分,应该在聚合操作中使用。

修改后的查询(Mongo Shell)是

db.device_states.documentKey.aggregate([
  { $match:
    { 
      "device": { $in: ["nest_kitchen_thermo"] }, 
      operationType: "insert"
    }
  }
]);