Mongoose / Mongodb查询不适用于TypeScript对象

时间:2018-10-16 09:26:48

标签: node.js mongodb typescript object mongoose

我正在将Node.js与Mongoose以及Typescript一起使用。基于this这样的SO线程,查询器也应与我的函数一起工作:

 let conditions = {};
        conditions['belongsToRestaurant'] = dto.restId;
 conditions['belongsToRestaurant']

    await Order.findOne({conditions}).then((doc) => {
                console.log('doc');
                console.log(doc);
            })

控制台始终为“ restId”记录正确的值,为“ doc”始终记录为空。

我尝试了所有我能想到的变化。我使用构造函数创建了一个对象,使用set属性创建了一个对象,并尝试了无用的类。我尝试使用猫鼬类型,例如:

conditions['consumerName'] = new mongoose.Schema.Types.String("asasd");
conditions['belongsToRestaurant'] = mongoose.Types.ObjectId(dto.restId);

到目前为止没有任何工作。感谢您的阅读和事先帮助!

  • 旁注:请记住,我要引用的这些字段不在数组,子文档或任何此类属性中。当我不使用对象进行udpate时,可以完全正常工作。

1 个答案:

答案 0 :(得分:1)

将条件对象包装在对象内只是一个小错误。

findOne函数中删除环绕的花括号将解决此问题。

const conditions = {};
conditions.belongsToRestaurant = dto.restId;

await Order.findOne(conditions)
  .then((doc) => {
    console.log('doc');
    console.log(doc);
  });