我定義爲貓鼬架構和模型如下:在貓鼬模式上應用2dsphere索引是否強制要求位置字段?
var mongoose = require('mongoose')
, Schema = new mongoose.Schema({
email: {
index: {
sparse: true,
unique: true
},
lowercase: true,
required: true,
trim: true,
type: String
},
location: {
index: '2dsphere',
type: [Number]
}
})
, User = module.exports = mongoose.model('User', Schema);
如果我嘗試:
var user = new User({ email: '[email protected]' });
user.save(function(err) {
if (err) return done(err);
should.not.exist(err);
done();
});
我收到錯誤消息:
MongoError: Can't extract geo keys from object, malformed geometry?:{}
儘管在此位置字段架構不是必需的,它似乎反正是這樣。我曾嘗試添加default: [0,0]
,它避免了這個錯誤,但它看起來有點像黑客,因爲這顯然不是一個好的默認設置,理想情況下,架構不需要用戶隨時都有位置。
使用MongoDB/mongoose做地理空間索引意味着被索引的字段是必需的嗎?
這是不是可以添加到貓鼬爲{類型:[序號],索引: '2dsphere'}領域,所以它會自動處理? – 2013-08-21 17:14:47
絕對:https://github.com/LearnBoost/mongoose/issues/1668 – aaronheckmann 2013-08-27 21:00:46
太棒了,歡呼亞倫 – 2013-08-28 06:14:04