node.js - 当值为对象时不调用 Mongoose 虚拟集函数

标签 node.js mongoose

我有一个混合类型虚拟的 Mongoose 模式。例如:

var mongoose = require('mongoose') // version 3.3.1

var FooSchema = new mongoose.Schema( { x: Number } );

FooSchema.virtual('v').set( function(value){ 
  console.log("SETTING", value); 
});

var Foo = mongoose.model('Foo', FooSchema);

new Foo( { v:1 } );
new Foo( { v:[] } );
new Foo( { v:{} } );

当我运行这段代码时,我得到:

SETTING 1
SETTING []

您会注意到它从不显示“SETTING {}”,为什么这不起作用?

Reference to issue on Github

最佳答案

这是 Mongoose 中的一个未解决问题,已 fixed in a recent commit通过 Aaron Heckmann .

关于node.js - 当值为对象时不调用 Mongoose 虚拟集函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12736854/

相关文章:

node.js - 对一个查询中具有多个条件的文档进行计数

node.js - SQLite3 Node.js JSON

javascript - 具有嵌入式 Web 服务器的 PhantomJS 仅使用一个 CPU

node.js - Mongoose 中使用错误验证器的路由

javascript - 在 Node.js 中使用查询字符串过滤对象数组

java - 我无法在本地构建我的 Android 应用程序 - PhoneGap 新手

javascript - puppeteer 师 - 错误 : Evaluation failed: ReferenceError: TABLE_ROW_SELECTOR is not defined

javascript - Mongoose 在填充后使用 where

node.js - 在Mongoose中填充后查询

arrays - 将数组值添加到元素不在数组中的 MongoDB