簡體   English   中英

貓鼬發現無法使用默認屬性

[英]Mongoose find not working on default attribute

這可能真的很簡單,但是我看不到我所缺少的。

這是我的模型:

'use strict';

var mongoose = require('mongoose'),
Schema = mongoose.Schema;

var JobSchema = new Schema({
  type: String,
  scheduled: { type:Boolean, default:false },
  state: { type: String, default: 'initial' },
  details: {},
  changes: [],
  lastModified: { type: Date, default: Date.now },
});

//RECCOMMENDED TO TURN OFF IN PRODUCTION?
JobSchema.index({type:1, state:1, "details.prodId":1});

module.exports = mongoose.model('Job', JobSchema);

但是,每當我運行以下代碼時,都不會返回任何內容:

Job.find({state:'initial'},function(err,data){
    console.log(data.length);
});

我已經在其他屬性上測試了相同的代碼,可以正常工作。

這也是一些示例數據庫數據:

[
  {
    "_id":"55709ed07df3b4b1f034311a",
    "details": {
       "quantity":"10",
       "price":"45.28",
       "prodId":"321product",
       "storeId":"338store"
    },
    "lastModified":"2015-06-06T18:00:28.348Z",
    "changes":[],
    "state":"initial",
    "scheduled":true
  },...

UPDATE

好的,我將state一些值從“ initial”更改為“ pending”,而mongo找到了“ pending”,但是,它無法識別“ initial”,並返回了0個結果。

可能是您查詢了不應該使用的數據庫。

我已經在計算機上運行了相同的代碼,並且實際上它找到了具有初始狀態的工作,我使用在計算機中運行的代碼在名為app.js的文件中創建了要點: https ://gist.github.com / wilsonbalderrama / 653c34acf19871115f64

您需要啟動並運行mongodb服務器,然后安裝以下依賴項:

$ npm install mongoose async

然后運行文件:

$ node app.js

讓我知道該代碼是否對您有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM