我有以下型号:
var requestSchema = new Schema({
description: { type: String, required: true },
country: { type: String, index: true },
shipping: [shipping],
deliveryLoc: { type: String, index: true },
price: { type: Number, default: 0 },
})
我现在想用mongoose获取价格,我不确定我必须使用哪个命令。
我试过了:
var pricy = _.first(_.where(request.price));
并且它不起作用,即使通过我可以获得的同一文件中的其他查询也未定义"运送"。
获取送货类型可使用以下命令:
var shipping = _.first(_.where(request.shipping, { type: shippingType }));
我使用了错误的命令吗?
答案 0 :(得分:0)
您应该能够使用select方法,如下所示:
// find a request
var query = Request.findOne();
// selecting the `price` field
query.select('price');
// execute the query at a later time
query.exec(function (err, request) {
if (err) return handleError(err);
console.log('The price is $%s.', person.price) // The price is $6.92
});
或者如果传递回调:
var Request = mongoose.model('Request', requestSchema);
// find each request with a country matching 'Zimbabwe', selecting the `price` field
Request.findOne({ 'country': 'Zimbabwe' }, 'price', function (err, request) {
if (err) return handleError(err);
console.log('The price is $%s.', request.price) // The price is $6.92.
});
答案 1 :(得分:0)
首先,您需要创建这样的架构:
MainWindow
之后,您需要编译新架构并将其添加到数据库中:
var items = new Schema({
description: { type: String, required: true },
country: { type: String, index: true },
shipping: [shipping],
deliveryLoc: { type: String, index: true },
price: { type: Number, default: 0 },
});
创建模型后,您可以执行查询(find或findOne):
items = mongoose.model("Items", items); // The table name will be "Items"
完整代码:
items.findOne({price: request.price}, function (error, item) {
if (error) {
console.log(error);
} else {
console.log(item);
}
});