Node.js 如果架构中不存在特定键,则无法获取mongoose中该键的值

Node.js 如果架构中不存在特定键,则无法获取mongoose中该键的值,node.js,mongoose,mongoose-schema,Node.js,Mongoose,Mongoose Schema,我能够插入模式中定义的以外的新键值对 但是当我试着读取那个键的值时。我不能。我正在使用以下代码 UserEventsInfo = new mongoose.Schema({ name: String, username: String, event_movie:[String], event_tour:[String], event_restaurant:[String], event_lifetimeevents:[String] },{stri

我能够插入模式中定义的以外的新键值对

但是当我试着读取那个键的值时。我不能。我正在使用以下代码

UserEventsInfo = new mongoose.Schema({
    name: String,
    username: String,
    event_movie:[String],
    event_tour:[String],
    event_restaurant:[String],
    event_lifetimeevents:[String]
},{strict : false});
这里eventname是一个变量。 当我在模式中添加该键时,它返回值,即work's fine。 否则它不会返回任何值。

看起来像是有一个像这样提交给mongoose的文件。以下是回应:

我们在无模式数据库中看到的好处是,我们的数据模型能够按照我们的功能要求以最快的速度发展,而不会对性能产生线性影响,也不会因为不必要的迁移而降低部署周期

如果您不希望在保存之前对数据进行规范化和验证,那么您不需要像Mongoose这样的工具,您可以直接使用驱动程序

在稍微挖掘之后,有一种方法可以做到这一点,但是您需要有一个类型为
Schema.Types.Mixed
的字段。所以看起来是这样的:

UserEventsDetails.find({username:username},function(err,docs){
  if(!docs.length)
  {
    res.send('datanotavailable');
      }
  else{
    res.send(docs[0][eventname]);
        }
  }); 
在一个混合的模型上做一个查找,这样就回答了那个问题

****编辑

忘记链接

的文档看起来有一个像这样提交给mongoose的文档。以下是回应:

我们在无模式数据库中看到的好处是,我们的数据模型能够按照我们的功能要求以最快的速度发展,而不会对性能产生线性影响,也不会因为不必要的迁移而降低部署周期

如果您不希望在保存之前对数据进行规范化和验证,那么您不需要像Mongoose这样的工具,您可以直接使用驱动程序

在稍微挖掘之后,有一种方法可以做到这一点,但是您需要有一个类型为
Schema.Types.Mixed
的字段。所以看起来是这样的:

UserEventsDetails.find({username:username},function(err,docs){
  if(!docs.length)
  {
    res.send('datanotavailable');
      }
  else{
    res.send(docs[0][eventname]);
        }
  }); 
在一个混合的模型上做一个查找,这样就回答了那个问题

****编辑


忘了链接文档,你得到的错误是什么?我没有得到任何东西-它只返回回调函数中schemaconsole.log(err)中存在的那些键,可能会帮助你…如果键不存在,错误为null,文档为
[]
一个空的arrayconsole.log(docs[0][“eventname”]); 正在给我undefinedWhat's error you's get?我没有得到任何东西-它只返回回调函数中schemaconsole.log(err)中存在的那些键,可能会对您有所帮助…如果键不存在,错误为null,文档为
[]
一个空的arrayconsole.log(文档[0][“eventname]”);给我的是未定义的