2017-01-23 89 views
0
import mongoose from 'mongoose'; 
// mongoose Schema is what is used to define attributes for our documents 
var Schema = mongoose.Schema; 
//connect to a MongoDB database 
var db = mongoose.connect('mongodb://127.0.0.1:27017/student'); 
//Connection establishment between mongoose and mongodb 
mongoose.connect('connected', function() { 
    console.log("database connected successfully") 
}); 


var userSchema = new Schema({ 

    id:{ 
     type:Number, 
      unique:true, 
      autoIndexId:true 
    }, 
    Name: { 
     type: String, 
     required: true, 
       unique:false 
    }, 
    Age: { 
     type: Number, 
     required: true 
    } 
}, { 
    collection: ('studentcollection') 
}); 

var User = mongoose.model('User', userSchema); 

function createStudent(name, age, cb) { 
    var list = new User({ 
      id:4, 
     Name: name, 
     Age: age 
    }); 

    list.save(function(err) { 
     if (err) return cb(err); 
     return cb(); 
    }); 
} 

function listStudent(cb) { 
    User.find({}, function(err, studentcollection) { 
     if (err) return cb(err); 
     return cb(null, studentcollection); 
    }).select('-__v'); 
} 


exports.createStudent = createStudent; 
exports.listStudent = listStudent; 

User.findByIdAndRemove(2,function(err){ 
    if(err) throw err; 
    console.log("deleted"); 
}); 

這是我的代碼,我需要增加id,當我從服務器接收數據時它應該是唯一的,而且當我刪除一個id時,id值也必須更新。我遇到了自動增量,但是當我刪除一個特定的ID它不會更新ID。是他們的任何其他方法,所以我可以增加ID。如何在mongodb中增加一個id

+1

'findByIdAndRemove'需要'_id'場又在這裏你指的是自定義'id'場,這顯然是行不通的。 – chridam

回答

0

使用mongoose-auto-increment模塊,

var mongoose = require('../lib/mongoose'); 
    Schema = mongoose.Schema; 
    autoIncrement = require('mongoose-auto-increment'); 
    companySchema = require('./company').Company; 

autoIncrement.initialize(mongoose); 

var schema = new Schema({ 
    itemId: { 
     type: Number, 
    }, 
    itemName: { 
     type: String, 
     required: true, 
     unique: true 
    }, 
    providerCompany: [{ 
     type: String, 
    }] 

}); 

var productSchema = mongoose.model('Product', schema); 

schema.plugin(autoIncrement.plugin, {model: 'Product', field: 'itemId'}); 
module.exports.Product = productSchema; 

https://github.com/miroslav-grabinskiy/Api/blob/master/Avalon/models/product.js

相關問題