0
我想保存數據庫上的點擊座標,但如果x和y是相同的,我不想保存它們。即使我使用複合索引並通過書籍完成任何事情,它仍能保存所有內容。在stackoverflow上有類似的問題,但它不適用於我的代碼。即使使用複合索引,爲什麼重複也會保存? Mongo(Mongoose)
模型架構:
var mongoose = require('mongoose');
var uniqueValidator = require('mongoose-unique-validator');
require('mongoose-double')(mongoose);
var Schema = mongoose.Schema;
var integerValidator = require('mongoose-integer');
var SchemaTypes = mongoose.Schema.Types;
var clickPoint = new Schema({
clicks: [
{
x: {
type: SchemaTypes.Double
},
y: {
type: SchemaTypes.Double
},
value: {
type: Number,
integer: true
}
}
]
});
clickPoint.index({x: 1, y: 1}, {unique: true});
clickPoint.plugin(integerValidator);
clickPoint.plugin(uniqueValidator);
//export model...
module.exports = mongoose.model("ClickPoint", clickPoint);
型號控制器:
var ClickPoint = require('../Models/point');
exports.addPoint = function (click) {
ClickPoint.findOne(function (err, data) {
if(!err) {
if(data) {
data.clicks.push({
x: click.x,
y: click.y,
value: click.value
});
data.save();
}
else {
var entry = new ClickPoint({
x: click.x,
y: click.y,
value: click.value
});
entry.save();
}
}
})
};
難道說所有的記錄都存儲在一個數組,據我所知,索引允許存儲複本中陣列?如果這是問題,而不是如何保持對象在數組中獨一無二。
難道是所有的記錄存儲在一個數組中,據我所知,索引允許在數組中存儲重複? – Octtavius