2016-11-19 78 views
1

工作,我已经创建了一个集合包含以下

{ "_id" : ObjectId("580776455ecd3b4352705ec4"), "operation_number" : 10, "operation_description" : "SHEARING", "machine" : "GAS CUTT" } 
{ "_id" : ObjectId("580776455ecd3b4352705ec5"), "operation_number" : 50, "operation_description" : "EYE ROLLING -1", "machine" : "E-ROLL-1" } 
{ "_id" : ObjectId("580776455ecd3b4352705ec6"), "operation_number" : 60, "operation_description" : "EYE ROLLING -2", "machine" : "E-ROLL-1" } 
{ "_id" : ObjectId("580776455ecd3b4352705ec7"), "operation_number" : 70, "operation_description" : "EYE REAMING", "machine" : "E-REAM" } 
{ "_id" : ObjectId("580776455ecd3b4352705ec8"), "operation_number" : 80, "operation_description" : "COLD CENTER HOLE PUNCHING", "machine" : "C-PNCH-1" } 
{ "_id" : ObjectId("580776455ecd3b4352705ec9"), "operation_number" : 150, "operation_description" : "READY FOR HT", "machine" : "RHT" } 

用猫鼬模型如下

var mongoose = require('mongoose'); 
var uniqueValidator = require('mongoose-unique-validator'); 
var Promise = require("bluebird"); 

mongoose.Promise = Promise; 
var Schema = mongoose.Schema; 
var operationSchema = new Schema({ 
    operation_number: { 
     type: String, 
     required: [ 
      true, 
      "Please select valid operation code" 
     ]unique : true 
    }, 
    operation_description: { 
     type: String, 
     required: [ 
      true, 
      "Please select valid operation description" 
     ] 
    } 
}, { strict: false }); 
var operation = mongoose.model('operation', operationSchema); 
operationSchema.plugin(uniqueValidator, { message: 'Error, {PATH} {VALUE} already exist.' }); 


// make this available to our users in our Node applications 
module.exports = operation; 
现在

像一些操作细节,如果我查询这种集合operations使用db.operations.find({operation_number : {$in : [10, 50, 60]}})它的工作原理,但谈到猫鼬它不起作用。

var mc = require("./data-models/operation") 
var filter = {'operation_number': 
       {$in : 
        [10, 50, 60] 
       } 
      } 
console.log(filter) 
mc.find(filter, function(me, md){ 
    console.log(me, md) // prints null [] 
}) 

即使我已经试过周围operation_number

去除单引号,请帮忙找方法!

+0

可以追加从'/数据模型/ operation'到后的模型声明? –

+0

是的,请附上架构模型 –

回答

1

你的模式说operation_number是一个字符串:

operation_number: { 
    type: String, <-- here 
    ... 
} 

因此,猫鼬会投的号码$in阵列为字符串英寸

但是,数据库中的数据是数字的,这是不同的类型。你应该改变你的架构,以便operation_number成为Number

operation_number: { 
    type: Number, 
    ... 
} 
+0

谢谢兄弟! –