獲取 MongoDB 集合中具有“isMarried”狀態的所有嵌入式文件


若要獲取所有嵌入式文件,請在 MongoDB 中使用 $project。讓我們建立一個包含文件的集合 −

> db.demo220.insertOne({
...   "id":101,
...   "FullName" : "John Doe",
...   "EmailId" : "john12@gmail.com",
...   "ShippingDate" : new ISODate(),
...   "details" : { "_id" :1001, "isMarried" :true }
...}
...);
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3eaf5b03d395bdc213471d")
}
> db.demo220.insertOne(
...{
...   "id":102,
...   "FullName" : "John Smith",
...   "EmailId" : "johnsmith@gmail.com",
...   "ShippingDate" : new ISODate(),
...   "details" : { "_id" :1002, "isMarried" :false }
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3eaf5c03d395bdc213471e")
}

使用 find() 方法顯示集合中的所有文件 −

> db.demo220.find();

這將產生以下輸出 −

{ "_id" : ObjectId("5e3eaf5b03d395bdc213471d"), "id" : 101, "FullName" : "John Doe", "EmailId" : "john12@gmail.com", "ShippingDate" : ISODate("2020-02-08T12:53:47.876Z"), "details" : { "_id" : 1001, "isMarried" : true } }
{ "_id" : ObjectId("5e3eaf5c03d395bdc213471e"), "id" : 102, "FullName" : "John Smith", "EmailId" : "johnsmith@gmail.com", "ShippingDate" : ISODate("2020-02-08T12:53:48.991Z"), "details" : { "_id" : 1002, "isMarried" : false } }

以下是獲取所有嵌入式文件的查詢 −

> db.demo220.aggregate({ $project : {
...   "isMarried" : "$details.isMarried",
...   "detailsId" : "$details_id", } });

這將產生以下輸出 −

{ "_id" : ObjectId("5e3eaf5b03d395bdc213471d"), "isMarried" : true }
{ "_id" : ObjectId("5e3eaf5c03d395bdc213471e"), "isMarried" : false }

更新於: 30-3-2020

161 瀏覽量

開啟你的職業生涯

完成課程即可獲得認證

開始使用
廣告