我正在将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);
到目前为止没有任何工作。感谢您的阅读和事先帮助!
答案 0 :(得分:1)
将条件对象包装在对象内只是一个小错误。
从findOne
函数中删除环绕的花括号将解决此问题。
const conditions = {};
conditions.belongsToRestaurant = dto.restId;
await Order.findOne(conditions)
.then((doc) => {
console.log('doc');
console.log(doc);
});