我想要mongo分貝,我想問是否有可能只獲得文檔的特定部分?Mongodb獲取文檔的特定部分
例
{
"name" : "MongoDB",
"info" : {
x : 203,
y : 102
}
}
而且我想只有info
內容。
最近我發現的是db.cellection.find({},{info:1 })
但這個返回信息:內容和我想返回只有的內容。
可能嗎?怎麼樣?
我想要mongo分貝,我想問是否有可能只獲得文檔的特定部分?Mongodb獲取文檔的特定部分
例
{
"name" : "MongoDB",
"info" : {
x : 203,
y : 102
}
}
而且我想只有info
內容。
最近我發現的是db.cellection.find({},{info:1 })
但這個返回信息:內容和我想返回只有的內容。
可能嗎?怎麼樣?
你可以做
db.collection.find({},{'info.x':1, 'info.y':1})
但是這意味着列出每個和投影的信息對象的每一個項目 - 這可能是也可能不是你要找的內容。
不,你不能只返回x/y的值;即使限制字段外部結構仍然返回。
有關更多信息,請參閱。
您可以使用distinct()
功能,通過以下類似:
db.collection.distinct("info", {info : {$exists : true}})
您知道爲什麼這是0嗎?這聽起來像是完全正確的答案,而排名前2意味着海報想做的事情是不可能的。 – michaelAdam 2015-07-07 16:09:49
儘管它具有「獨特」關鍵字,但它並不像mysql那樣選擇不同的項目,它只會選擇您提供的「獨特」字段。所以這個答案產生了更好的結果,然後其他2個答案。 – WallTearer 2015-10-07 15:23:14
您可以使用aggregation framework:
$項目階段,選擇字段,
db.getCollection('yourCollection').aggregate([ {$match:{_id:ObjectId("566fc97f5b79dff1a73ca2ae")}}, {$project:{_id:0, "x":"$info.x", "y":"$info.y"}} ])
我也有興趣在該解決方案爲我的文檔+大小5MB,我只有特定的領域之後。不,我無法將特定字段保存在單獨的表格中,因爲我在一個文檔中存儲了多個字段(+ 10k字段) – 2016-08-04 10:46:51