Model.find()不是函数

时间:2019-05-17 06:51:40

标签: javascript mongodb mongoose

我正在尝试通过查找模型的postalValue进行查询,但是出现的错误是说没有方法 find()

下面是从数据库查询时遇到的错误。

  

modelInstance.find({postalValue:123344})。then(model =>                 ^ TypeError:modelInstance.find不是函数       在对象。 (/用户/ biswajeet /文档/webdriverio-test-framework/src/vendor/dataTest.js:44:15)       在Module._compile(内部/模块/cjs/loader.js:701:30)       在Object.Module._extensions..js(内部/模块/cjs/loader.js:712:10)       在Module.load(internal / modules / cjs / loader.js:600:32)       在tryModuleLoad(内部/模块/cjs/loader.js:539:12)       在Function.Module._load(内部/模块/cjs/loader.js:531:3)       在Function.Module.runMain(内部/模块/cjs/loader.js:754:12)       在启动时(internal / bootstrap / node.js:283:19)        在bootstrapNodeJSCore(internal / bootstrap / node.js:622:3)

const modelInstance = new RegisterModel({
   cred: {
       nameValue: 'Sample',
       emailValue: 'sample@gmail.com',
       passwordValue: 'sample122',
   },
   location: {
       addressValue: 'sample address',
       cityValue: 'sample',
       stateValue: 'sample',
       postalValue: 123344,
   },
   card: {
       cardName: 'Sample',
       cardNumber: 231232143,
       securityCode: 131,
       expirationMonth: 1,
       expirationYear: 2022,
   },
})
modelInstance.save(function (err) {
   console.log('@@@@@ Inside the callback ', err);
   if (err) {
       console.log('the error is ', err);
   }
   console.log('saved the model instance @@@@@@');
   console.log(modelInstance, '@@@@@Helllo@@@@@');
});
modelInstance.find({postalValue: 123344 }).then(model=>
   console.log('model@@@',model)
   )

1 个答案:

答案 0 :(得分:2)

在猫鼬中,您必须执行buttonContainer,因为RegisterModel.find()modelInstance的实例,而RegisterModel查询是在模型而不是模型实例上进行的。 find()findOne同样适用。

但是对于findById,请使用save,因为您实际上是在保存更新的数据。因此,如果该文档的至少一个属性被修改,这也将迫使mongodb更新记录的版本值,即modelInstance.save