首页 > 解决方案 > 在 mongoose 和 nodejs 中提取多种语言的数据

问题描述

我有这样的架构。

var mongoose = require('mongoose')

var Schema = mongoose.Schema

var newsschema = new Schema({
  name_ru: {type: String, required: true, maxlength: 100, minlength: 3}, 
  name_en: {type: String, required: true, maxlength: 100, minlength: 3}, 
  name_uk: {type: String, required: true, maxlength: 100, minlength: 3},

  desc_ru: {type: String, required: true, minlength: 3}, 
  desc_en: {type: String, required: true, minlength: 3}, 
  desc_uk: {type: String, required: true, minlength: 3},

 created_date: {type: Date, default: Date.now}
},{collection:'news'})

var news= mongoose.model('news', newsschema)

module.exports = news

When English is selected, only English I want the data to come.
例如,如果有这样的事情,你能帮忙吗?

name = name_en 

desc = desc_en

标签: node.jsmongodbmongoosemultilingual

解决方案


如果我理解正确,您只想获取name_endesc_en存在的数据,那么为什么不删除required架构中的参数并仅根据语言插入那些需要的字段。

在这种情况下,您可以使用简单的查找查询来获取数据,

db.collection.find({"name_en":{$exists:true},"desc_en":{$exists: true}})

如果那不可能,

db.collection.find({},{name_en:1,desc_en:1,created_date:1})

我相信就足够了。


推荐阅读