gpt4 book ai didi

javascript - node.js 仅将填写的值传递给 mongodb

转载 作者:太空宇宙 更新时间:2023-11-04 01:13:18 25 4
gpt4 key购买 nike

我正在使用node.js、mongodb 和express 开发一个必须处理事务的项目。我可以对要放入 mongodb 的变量进行硬编码,但如果没有填写所有字段(并非所有字段都是必需的),那么我只是将空数据放入数据库中。

此代码有效:

    var d = new Date();
var n = d.toJSON();

var date = n;
var address = req.body.property_address;
var client_name = req.body.client_name;
var sales_price = req.body.sales_price;
var commission_percent = req.body.commission_percent;
var referral = req.body.referral;
var donation = req.body.donation;
var client_source = req.body.client_source;
var client_type = req.body.client_type;
var notes = req.body.notes;

Transaction.findOne({ name: { $regex: new RegExp(date, "i") } },
function(err, doc){
if(!err && !doc) {
console.log("there is no error, and this does not already exist");
var newTransaction = new Transaction();

newTransaction.date = date;
newTransaction.address = address;
newTransaction.client_name = client_name;
newTransaction.sales_price = sales_price;
newTransaction.commission_percent = commission_percent;
newTransaction.referral = referral;
newTransaction.donation = donation;
newTransaction.client_source = client_source;
newTransaction.client_type = client_type;
newTransaction.notes = notes;

newTransaction.save(function(err) {
if(!err){
console.log("successfully saved");
res.json(200, {message: newTransaction.date});
} else {
res.json(500, {message: "Could not create transaction. Error: " + err})
}
});
}
});

但是将一个不存在的值放入 mongodb 有什么意义呢?这难道不是最棒的事情之一吗?我的想法是,它消除了我将来可能能够进行的可能的查询。

是否可以做更多类似的事情?

Transaction.findOne({ name: { $regex: new RegExp(date, 'i' ) } },
function(err, doc){
if(!err && !doc){
var newTransaction = new Transaction();

for(var key in req.body){
newTransaction.key = req.body[key];
}
}
}
});

更新

这是我最终使用的有效代码。

Transaction.findOne({ name: { $regex: new RegExp(date, "i") } },
function(err, doc){
if(!err && !doc){
var newTransaction = new Transaction();
for(var key in req.body){
if(req.body[key] != ''){
newTransaction[key] = req.body[key];
}
}
}
}
});

最佳答案

这是非常好的行为。您仍然可以查询所有文档中不存在的字段,因为不存在的字段等同于不等于。

这意味着文档的松散定义仍然保留。

关于javascript - node.js 仅将填写的值传递给 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14096176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com