我正在尝试更新集合中的值。用户点击一个按钮,并将与该按钮相对应的数字发送到服务器以添加到集合中。更新MongoDB集合 - JavaScript
我无法收集到更新,但它在控制台工作正常,如果我使用db.orders.update()
订单模式:
// DB Initiation stuff
var orderSchema = new mongoose.Schema({
status: String,
rated: Number
});
var collection = 'orders';
var Order = db.model('Order', orderSchema, collection);
module.exports = Order;
客户端(当按钮点击)
// starID = 5; id = 50e6a57808a1d92dcd000001
socket.emit('rated', {rated: starID, id: id});
socket.js:
var Order = require('../models/orders');
socket.on('rated', function(data) {
/* Probably a better way to do this but, wrap
* the id in 'ObjectId(id)'
*/
var id = 'ObjectId("'+data.id+'")';
Order.update({_id: id}, {$set: {rated: data.rated}});
socket.emit('updated', {
note: 'Some HTML notification to append'
});
});
尝试使用'var id = ObjectId.fromString(data.id);'而不是创建一个字符串(其中'ObjectId' ='mongoose.Types.ObjectId')。 – WiredPrairie