如何编写 MongoDb Mongoose 查询来匹配两个属性
How to write MongoDb Mongoose query to match two attributes
我的股票模型文件看起来像这样:
const Stock = new Schema(
{
ClientId : {type : Schema.ObjectId},
ClientName : {type : String},
StockName : { type : String },
StockType : { type : String },
ConsumedQuantity : {type : Number},
TotalQuantity : {type : Number},
WastageQuantity : {type : Number},
},
{ timestamps: true },
);
这里还有一个来自我的库存控制器的查询:
Stock.findOne({ ClientId : clientId }, (err, stock) => {
if (err) {
return res.status(404).json({
err,
message: 'Stock not found!',
})
}
if( stock.ConsumedQuantity === undefined)
stock.ConsumedQuantity = materialConsumed
else
stock.ConsumedQuantity += materialConsumed
if( stock.WastageQuantity === undefined)
stock.WastageQuantity = materialWasted
else
stock.WastageQuantity += materialWasted
stock
.save()
.then(() => {
return res.status(200).json({
success: true,
message: 'Material in inventory has been updated!',
})
})
.catch(error => {
return res.status(404).json({
error,
message: 'Material in inventory was not updated!',
})
})
})
我希望能够根据两个条件查询我的库存商品,首先是 ClientId 等于 clientId,这是我从服务器请求中获得的值。其次,我希望 stockItem 的名称与字符串匹配。我该怎么做呢?是否可以使用 AND 运算符在同一查询中执行 ClientId : clientId 和 StockName : stockName ?请帮忙!谢谢你。
Stock.findOne({ ClientId : clientId, StockName : yourString }, (err, stock) => {
if (err) {
return res.status(404).json({
err,
message: 'Stock not found!',
})
}
if( stock.ConsumedQuantity === undefined)
stock.ConsumedQuantity = materialConsumed
else
stock.ConsumedQuantity += materialConsumed
if( stock.WastageQuantity === undefined)
stock.WastageQuantity = materialWasted
else
stock.WastageQuantity += materialWasted
stock
.save()
.then(() => {
return res.status(200).json({
success: true,
message: 'Material in inventory has been updated!',
})
})
.catch(error => {
return res.status(404).json({
error,
message: 'Material in inventory was not updated!',
})
})
})
我的股票模型文件看起来像这样:
const Stock = new Schema(
{
ClientId : {type : Schema.ObjectId},
ClientName : {type : String},
StockName : { type : String },
StockType : { type : String },
ConsumedQuantity : {type : Number},
TotalQuantity : {type : Number},
WastageQuantity : {type : Number},
},
{ timestamps: true },
);
这里还有一个来自我的库存控制器的查询:
Stock.findOne({ ClientId : clientId }, (err, stock) => {
if (err) {
return res.status(404).json({
err,
message: 'Stock not found!',
})
}
if( stock.ConsumedQuantity === undefined)
stock.ConsumedQuantity = materialConsumed
else
stock.ConsumedQuantity += materialConsumed
if( stock.WastageQuantity === undefined)
stock.WastageQuantity = materialWasted
else
stock.WastageQuantity += materialWasted
stock
.save()
.then(() => {
return res.status(200).json({
success: true,
message: 'Material in inventory has been updated!',
})
})
.catch(error => {
return res.status(404).json({
error,
message: 'Material in inventory was not updated!',
})
})
})
我希望能够根据两个条件查询我的库存商品,首先是 ClientId 等于 clientId,这是我从服务器请求中获得的值。其次,我希望 stockItem 的名称与字符串匹配。我该怎么做呢?是否可以使用 AND 运算符在同一查询中执行 ClientId : clientId 和 StockName : stockName ?请帮忙!谢谢你。
Stock.findOne({ ClientId : clientId, StockName : yourString }, (err, stock) => {
if (err) {
return res.status(404).json({
err,
message: 'Stock not found!',
})
}
if( stock.ConsumedQuantity === undefined)
stock.ConsumedQuantity = materialConsumed
else
stock.ConsumedQuantity += materialConsumed
if( stock.WastageQuantity === undefined)
stock.WastageQuantity = materialWasted
else
stock.WastageQuantity += materialWasted
stock
.save()
.then(() => {
return res.status(200).json({
success: true,
message: 'Material in inventory has been updated!',
})
})
.catch(error => {
return res.status(404).json({
error,
message: 'Material in inventory was not updated!',
})
})
})