我希望创建一个保存到MongoDB的新文档,不管它是否有效。我只想在模型保存调用时暂时跳过mongoose验证。
在我的CSV导入案例中,CSV文件中不包括一些必填字段,尤其是其他文档的引用字段。然后,以下示例的mongoose validation required检查未通过:
var product = mongoose.model("Product", Schema({
name: {
type: String,
required: true
},
price: {
type: Number,
required: true,
default: 0
},
supplier: {
type: Schema.Types.ObjectId,
ref: "Supplier",
required: true,
default: {}
}
}));
var data = {
name: 'Test',
price: 99
}; // this may be array of documents either
product(data).save(function(err) {
if (err) throw err;
});
是否有可能让Mongoose知道不执行验证中的保存()
调用?
我也试过这个模型。create(),但它也会调用验证过程。
您可以拥有使用相同集合的多个模型,因此可以创建第二个模型,而无需使用CSV导入所需的字段约束:
var rawProduct = mongoose.model("RawProduct", Schema({
name: String,
price: Number
}), 'products');
model
的第三个参数提供了一个明确的集合名称,允许此模型也使用products
集合。
虽然有一种禁用验证的方法,但我不知道您的选择之一是使用不使用中间件的方法(因此没有验证)。其中一个是insert,它直接访问Mongo驱动程序。
Product.collection.insert({
item: "ABC1",
details: {
model: "14Q3",
manufacturer: "XYZ Company"
},
}, function(err, doc) {
console.log(err);
console.log(doc);
});
这从v4开始就受到支持。4.2:
doc.save({ validateBeforeSave: false });
我有一个h:inputText、h:selectonemenu和commandbuton。Inputtext是必填字段,我已将其定义为immediate=“true”。然后,当我单击按钮时,我想将selectonemenu的当前值传递给托管bean。但它的passig为空。如何管理此验证,以便它允许我在托管bean中获取selectOneMenu的值。。 我的代码是...
我试图在我的数据库中保存一个json对象。未调用save()函数,但从未保存json对象。帮我解决这个问题。我想这是猫鼬的连接问题。这是我的密码。。 我的控制台日志:: 新增用户api命中!!json的内容是: 143没有userrs: 144 db中的用户计数已更新!!这个人生成的id是:ipkoID_C144调用保存函数obj::{"name":"Abhi","密码":"jio","usern
假设我有一个应用程序,它定义了几个模型并创建了全局Mongoose连接()。该应用程序还依赖于由目录中的模块定义的一些模型。我遇到的问题是应用程序和单独的模块不共享相同的全局连接对象。 好吧,好吧。与其让模块导出模型,它可以只导出模式,主应用程序可以将其注册到连接中。在应用程序中,会有如下内容: 有其他选择吗? 多谢.
问题内容: 我正在尝试在MongoDB中更新实例化模型(“地方”-我知道它可以在其他路线中使用),并且花了一段时间尝试正确地做到这一点。我还试图重定向回查看“位置”的页面,以查看更新的属性。 节点v0.4.0,Express v1.0.7,Mongoose 1.10.0 架构: 控制器/路线: }); 我尝试了多种方法,但似乎无法理解。 另外,我不是如何声明三个{name,capital和cont
问题内容: 我正在寻找一种与Mockito进行验证的方法,即在测试过程中与给定的模拟没有任何交互。对于具有验证模式的给定方法,很容易实现这一点,但是我还没有找到完整模拟的解决方案。 我真正想要实现的是:在测试中验证,没有任何内容打印到控制台上。jUnit的总体思路如下: A 有很多方法,我真的不想用单独的验证方法来验证每个方法,而… 因此,我希望,如果有一个简单的解决方案,鉴于我具有良好的测试覆盖
当我们出于开发目的或其他需要尝试访问SSL安全URL(或站点)时,当浏览器找不到我们正在访问的特定站点的有效SSL证书时,它会显示以下错误。 在WINDOWS OS中,它显示PROCEED选项,但在MAC OS中不显示此选项。 那么,如何简单地跳过MAC OS或其他操作系统中浏览器的SSL检查呢。