MongoDB Project 投影字段

2021-10-04 11:42:37 字數 1805 閱讀 7599

預設情況下,mongodb中的查詢返回匹配文件中的所有字段。 要限制mongodb傳送給應用程式的資料量,可以包含乙個投影文件以指定或限制要返回的字段。

db.inventory.insertmany(

[, instock: },

, instock: },

, instock: },

, instock: },

, instock: [, ]

}]);

如果沒有指定投影文件,db.collection.find()方法將返回匹配文件中的所有字段。

下面的示例返回庫存集合中狀態為「a」的所有文件的所有字段:

db.inventory.find(

)

通過將投影文件中的設定為1,投影可以顯式包括多個字段。

以下操作返回與查詢匹配的所有文件。 在結果集中,只有item,status以及預設情況下_id欄位會返回到匹配的文件中。

db.inventory.find(, )

#對應的sql:

select _id, item, status from inventory where status =

"a"

您可以通過將投影中的_id欄位設定為0來從結果中刪除_id欄位,如以下示例所示:

db.inventory.find(, )

#對應的sql:

select item, status from inventory where status =

"a"

注意:

除了_id欄位外,您不能在投影文件中對字段進行既包含又排除。

#此種不允許

db.inventory.find(, )

#此種允許,表示僅返回item以及status欄位

db.inventory.find(, )

#此種允許,表示除了item以及status欄位,其它都返回

db.inventory.find(

, )

您可以使用投影排除特定字段,而不是列出要在匹配文件中返回的字段。 以下示例返回匹配文件中狀態和庫存字段以外的所有字段:

db.inventory.find(

, )

您可以在嵌入的文件中返回特定的字段。使用點符號來引用嵌入的字段,並在投影文件中將其設定為1。

下面的例子返回:

db.inventory.find(

,

)

可以在嵌入式文件中禁用特定字段。使用點符號來引用投影文件中的嵌入字段,並將其設定為0。

db.inventory.find(

,

)

使用點表示法來投影嵌入在陣列中的文件中的特定字段。

下面的例子指定了乙個要返回的投影:

db.inventory.find(

, )

對於包含陣列的字段,mongodb為運算元組提供了以下投影操作符: $ elemmatch、$ slice和$。

下面的例子使用$slice投影操作符來返回instock陣列中的最後乙個元素:

db.inventory.find(, }

)

$ elemmatch,$ slice和$是投影要包含在返回陣列中的特定元素的唯一方法。

例如,您不能使用陣列索引來投影特定的陣列元素。

例如 投影不會投影第乙個元素的陣列。

投顧 智慧型投顧的概念

投資產品在掙錢,投資使用者在賠錢 因為大部分中國的 投資者偏向 投機 而非 投資 常有賭徒心理,進行錯誤的主觀判斷和頻繁的 交易,更沒有資產配置 分散風險的理念。全球資產配置之父 加里 布林森曾經說過 做投資決策,最重要的是要著眼於市場,確定好投資類別。從長遠看,大約90 的投資收益都是來自於成功的...

It行業風投

風險投資 venture capital 簡稱是vc,廣義的風險投資泛指一切具有高風險 高潛在收益的投資 狹義的風險投資是指以高新技術為基礎,生產與經營技術密集型產品的投資。也就是說,資本家們為了盈利,把自己的資金投入到自己看好的行業中。1 有發展潛力的市場 2 科技是針對市場的需要 3 可建立市場...

IT行業風投

風險投資 venture capital 簡稱是vc,在中國是乙個約定俗成的具有特定內涵的概念,其實把它翻譯成創業投資更為妥當。廣義的風險投資泛指一切具有高風險 高潛在收益的投資 狹義的風險投資是指以高新技術為基礎,生產與經營技術密集型產品的投資。根據美國全美風險投資協會的定義,風險投資是由職業金融...