Node.js 如何使用mongoose更新mongodb中的对象?
我有一个模式:Node.js 如何使用mongoose更新mongodb中的对象?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个模式: exports.participant = function(mongodb){ var participantSchema = new mongoose.Schema({ uniqueid: {type: String, unique: true}, channel: String, conference: String, calleridnum: String, calleridname: String, event: String,
exports.participant = function(mongodb){
var participantSchema = new mongoose.Schema({
uniqueid: {type: String, unique: true},
channel: String,
conference: String,
calleridnum: String,
calleridname: String,
event: String,
status : { type: Boolean, default: 0 }
},{ collection: 'participants'});
var participant = mongodb.model('Participant', participantSchema);
return participant;
}
我已经试过了,但还是不行
我想将状态更新为1
我在这里调用更新代码
我的模式的文件位置是:。/models/app.js
我的更新的文件位置是:。/lib/update.js
这是我的更新代码
var-appInit=require('../app');
var logger=appInit.logger;
var basedir=appInit.basedir;
var connection=appInit.connection;
var mongodb=appInit.mongodb;
var handleAsteriskAmi=require(basedir+'/lib/handleAsteriskAmi');
var asteriskAmi=新的handleAsteriskAmi();
var handleHttpProc=require(basedir+'/lib/handleHttpProc');
var httpProc=new handleHttpProc();
函数handleSocketio(){
this.init=函数(io){
io.sockets.on('connection',函数(socket){
中频(插座){
logger.info(“socket.io已连接”);
}
socket.on('disconnect',function(){
logger.error(“Socket.io断开”);
});
socket.on('action',函数(数据){
var result=JSON.parse(JSON.stringify(data));
asteriskAmi.listenActionConfbridge(结果、函数(响应){
logger.info(JSON.stringify(response));
if(response.event==“发起”){
io.sockets.emit(“响应”,响应);
}
if(response.event==“confbridgemute”| | response.event==“confbridgeunmute”){
io.sockets.emit(“响应”,响应);
mongodb.模型(“参与者”).更新(
{channel:response.channel},
{$set:{状态:1}}
);
}
if(response.event==“confbridgelock”| | response.event==“confbridgeunlock”){
io.sockets.emit(“响应”,响应);
}
});
});
});
我认为您需要在./models/app.js
中的参与者函数中传入mongoose对象,然后您可以使用该对象将参与者模式
转换为模型。因此,在./models/app.js
中,您可以按照
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
exports.participant = function(){
var participantSchema = new Schema({
uniqueid: {type: String, unique: true},
channel: String,
conference: String,
calleridnum: String,
calleridname: String,
event: String,
status : { type: Boolean, default: 0 }
},{ collection: 'participants'});
var participant = mongoose.model('Participant', participantSchema);
return participant;
}
在。/lib/update.js
中调用参与者模型:
var appInit = require('../app');
var Participant = appInit.participant();
Participant.update(
{channel: response.channel},
{$set: {status: 1}}
);
你能告诉我们你在哪里调用更新代码,在哪里创建
mongodb
mongoose对象吗?你好@chridam。我更新了我的问题。