我正在创建一个包含两个实体的应用程序,Book和User。
我在User实体模式中添加了一个名为locationCoords的参数,该参数包含与用户本身相关的坐标的数组(经度优先)。
locationCoords: {
type: [Number],
index: '2d'
}
在寻找图书时,我会尝试在附近显示来自用户的结果。 所以,我想执行像这样的查找查询
exports.list = function(req, res) {
if(req.user) {
Book.find({'user.locationCoords': {'$near': req.user.locationCoords}}).sort('-created').populate('user', 'displayName locationName locationCoords').exec(function(err, books) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(books);
}
});
}
}
我创建了附近位置的条目,但查询不会返回任何结果。 有什么建议吗?
我正在使用下面的架构
var BookSchema = new Schema({
title: {
type: String,
default: '',
required: 'Please fill Book title',
trim: true
},
language: {
type: String,
default: '',
required: 'Please fill Book language',
trim: true
},
description: {
type: String,
default: '',
trim: true
},
image: {
type: String,
default: '',
required: 'Please fill Book image',
trim: true
},
created: {
type: Date,
default: Date.now
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
由于 问候 莫里吉奥