我在我的快递应用程序中使用i18n-node,我需要使用getLocale()
“前缀”从数据库中获取数据
更新了问题
我的猫鼬模式
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var ArticleSchema = new Schema({
title: {
en : {type: String},
it : {type: String},
fr : {type: String},
},
content: {
en : {type: String},
it : {type: String},
fr : {type: String},
},
MyController
exports.list = function (req, res) {
var locale = i18n.getLocale();
console.log('locale',locale); //working -> en
Article.find({'title.locale':locale}).sort('-created').populate('user', 'displayName').exec(function (err, articles) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
console.log('articles',articles,'res');
res.json(articles);
}
});
};
我希望获得所有带有en
(例如)前缀的文章。
getLocale()
方法返回en
,it
等语言环境。
如何构建查询“查找所有文章”标题(或内容):getLocale()“?
即使Article.find({'title': 'en'})
无法正常工作
答案 0 :(得分:0)
我认为单独使用其关键字段获取子文档很困难。您需要提供子文档的值,例如Article.find({'title.en' : 'sample' })
。 [更新]
我希望这能解决您的问题
var locale = getLocale();//get locale returns it, en
var query = {
'title.'+locale:{ $exists : true, $ne : null }
}
Article.find(query, function(err, articles) {
console.log(articles);
});