如何添加第二个参数{engine:1,_id:0}到findOne,仅返回引擎数组{make:“ Acrua”,型号:“ CL”,year:“ 1997”}}。此集合中的所有文档都是唯一的。我应该使用find而不是findOne吗?我只想访问一个文档并将引擎数组发送给客户端。
[
{
make: "Acura",
model: null,
year: null,
engine: ["2.0L", "2.8L"]
},
{
make: "Acura",
model: "CL",
year: null,
engine: ["3.2L", "4.0L"]
},
{
make: "Acura",
model: "CL",
year: "1997",
engine: ["2.2L", "3.0L"]
}
]
app.get("/ajax_/:tab/:category/:make/:model/:year", function (req, res) {
db.collection("Autos_").findOne({make: req.params.make, model: params.model, year: req.params.year}, function(err, result) {
if (result) {
console.log(result);
}
});
})
答案 0 :(得分:0)
将“结果”记录到控制台时会是什么样?您可以只选择要查找的属性值,然后以这种方式返回它。根据MongoDB文档:
findOne结果文档
您不能将游标方法应用于 findOne()的结果,因为返回了单个文档。你有 直接访问文档:var myDocument = db.bios.findOne(); if (myDocument) { var myName = myDocument.name; print (tojson(myName)); }
指定要返回的字段
以下操作查找文档 在BIOS集合中,仅返回名称,贡献和_id 字段:db.bios.findOne( { }, { name: 1, contribs: 1 } )
https://docs.mongodb.com/manual/reference/method/db.collection.findOne/
答案 1 :(得分:0)
由于某些原因,您的参数可能未定义,因此您必须将其显式设置为UserFeed
。
仅将引擎投影为<UserFeed feedData = {this.state.data} deleteFeed = {() => this.deleteFeed(this.state.data.iterationid)} convertTime={this.convertTime} name={this.state.name}/>
只能投影引擎字段。因此您可以轻松返回null
(如果存在)。
{_id:0, engine:1}