我的收藏中有记录,如下所示
{
"_id" : ObjectId("53722c39e4b04a53021cf3c6"),
"symbol" : "AIA",
"tbq" : 1356,
"tsq" : 0,
"tquan" : 6831336,
"tvol" : 17331.78,
"bquantity" : 1356,
"squantity" : 0
}
{
"_id" : ObjectId("53722c38e4b04a53021cf3c1"),
"symbol" : "SAA",
"tbq" : 0,
"tsq" : 9200,
"tquan" : 6036143,
"tvol" : 50207.43,
"bquantity" : 0,
"squantity" : 9200
}
我按照bquantity的升序显示结果,同时我想在结果中只显示某些列(符号,bquantity,squantity),忽略其余的。
我尝试使用以下查询,但仍显示所有字段。
请告诉我如何从结果中消除这些字段?
db.stock.find().sort(
{"bquantity":-1},
{
symbol: 1,
bquantity: 1,
squantity:1 ,
_id:0,
tbq:0,
tsq:0,
tquan:0,
tvol:0
}
)
答案 0 :(得分:1)
字段过滤器是find
函数的参数,而不是排序函数,即:
db.stock.find({}, { _id:0,tbq:0, tsq:0,tquan:0,tvol:0}).sort({"bquantity":-1})
用作find
的第一个参数的空哈希是一个“空查询”,它匹配stock
中的所有文档。