1 回答
TA贡献1801条经验 获得超8个赞
您正在查询一个Building文档,因此mongo即使您尝试使用投影掩盖其某些字段,也会将其返回给您。
我不知道有什么方法可以计算查询中mongo数组中元素的数量find,但是您可以使用聚合框架,在那里您可以使用$size运算符来执行此操作。因此,您应该将这样的查询发送至mongo:
db.buildings.aggregate([
{
"$match":
{
"_id": buildingID,
"p": {
"$elemMatch": {"l": fNum}
}
}
},
{
"$project":
{
nrOfFloors: {
"$size": "$p"
}
}
}])
里面的哪个go看起来像
result := []bson.M{}
match := bson.M{"$match": bson.M{"b": bldg_uuid, "p": bson.M{"$elemMatch": bson.M{"l": fNum}}}}
count := bson.M{"$project": bson.M{"nrOfFloors": bson.M{"$size": "$p"}}}
operations := []bson.M{match, count}
pipe := sess.DB("mgodb").C("building").Pipe(operations)
pipe.All(&result)
- 1 回答
- 0 关注
- 206 浏览
添加回答
举报