在 MongoDB 中搜索物件陣列?


若要搜尋物件陣列,請使用 MongoDB find()。find() 方法選擇集合或檢視中的文件,並返回指向所選文件的遊標。

讓我們建立一個包含文件的集合 −

> db.demo484.insertOne(
... { 'id' : 1, 'details' : [ { 'Name1' : 'Chris' }, { 'Name2' : 'David' }, { 'Name3' : 'Bob' } ] }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e82e3a4b0f3fa88e22790a1")
}
> db.demo484.insertOne(
... { 'id' : 1, 'details' : [ { 'Name1' : 'Chris' }, { 'Name2' : 'Carol' }, { 'Name3' : 'Bob' } ] }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e82e3a4b0f3fa88e22790a2")
}
> db.demo484.insertOne(
... { 'id' : 1, 'details' : [ { 'Name1' : 'Chris' }, { 'Name2' : 'Carol' }, { 'Name3' : 'Mike' } ] }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e82e3a4b0f3fa88e22790a3")
}

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

> db.demo484.find();

這將產生以下輸出 −

{ "_id" : ObjectId("5e82e3a4b0f3fa88e22790a1"), "id" : 1, "details" : [ { "Name1" : "Chris" }, {
"Name2" : "David" }, { "Name3" : "Bob" } ] }
{ "_id" : ObjectId("5e82e3a4b0f3fa88e22790a2"), "id" : 1, "details" : [ { "Name1" : "Chris" }, {
"Name2" : "Carol" }, { "Name3" : "Bob" } ] }
{ "_id" : ObjectId("5e82e3a4b0f3fa88e22790a3"), "id" : 1, "details" : [ { "Name1" : "Chris" }, {
"Name2" : "Carol" }, { "Name3" : "Mike" } ] }

以下是如何在 MongoDB 集合中搜索物件陣列的查詢 −

> db.demo484.find(
... {$or: [
...    {'details.Name2': 'Carol', 'details.Name3': 'Mike'},
...    {'details.Name2': 'Carol', 'details.Name3': 'Bob'}
... ]}
... )

這將產生以下輸出 −

{ "_id" : ObjectId("5e82e3a4b0f3fa88e22790a2"), "id" : 1, "details" : [ { "Name1" : "Chris" }, {
"Name2" : "Carol" }, { "Name3" : "Bob" } ] }
{ "_id" : ObjectId("5e82e3a4b0f3fa88e22790a3"), "id" : 1, "details" : [ { "Name1" : "Chris" }, {
"Name2" : "Carol" }, { "Name3" : "Mike" } ] }

更新於: 11-5-2020

361 次瀏覽

開啟你的 事業

完成課程,獲取認證

開始
廣告
© . All rights reserved.