首页 > 解决方案 > Mongoose/Mongodb 查询不适用于 TypeScript 对象

问题描述

我将 Node.js 与 mongoose 与 Typescript 一起使用。并且基于这样的查询这样的SO线程也应该适用于我的函数:

 let conditions = {};

 conditions['belongsToRestaurant'] = dto.restId;
 conditions['belongsToRestaurant']

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

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

我已经尝试了我能想到的每一个变化。我使用构造函数创建了一个对象,创建了一个具有 set 属性的对象,尝试使用类没有任何效果。我尝试使用猫鼬类型,例如:

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

到目前为止没有任何效果。感谢您提前阅读和帮助!

标签: node.jsmongodbtypescriptobjectmongoose

解决方案


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

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

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

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

推荐阅读