若要查询嵌套字符串的数组,可以使用点(。)表示法。首先让我们创建一个包含文档的集合-
> db.nestedStringDemo.insertOne( { "CustomerName": "John", "CustomerOtherDetails": [ { "Age":29, "CountryName": "US" }, { "CompanyName": "Amazon", "Salary": 150000, "ProjectName": ["Online Library Management System", "Pig Dice Game"] } ] } ); { "acknowledged" : true, "insertedId" : ObjectId("5cea4629ef71edecf6a1f690") } > db.nestedStringDemo.insertOne( { "CustomerName": "Chris", "CustomerOtherDetails": [ { "Age":27, "CountryName": "AUS" }, { "CompanyName": "Google", "Salary": 250000, "ProjectName": ["Chat Application", "Game Design"] } ] } ); { "acknowledged" : true, "insertedId" : ObjectId("5cea466eef71edecf6a1f691") }
以下是在find()
方法的帮助下显示集合中所有文档的查询-
> db.nestedStringDemo.find().pretty();
这将产生以下输出-
{ "_id" : ObjectId("5cea4629ef71edecf6a1f690"), "CustomerName" : "John", "CustomerOtherDetails" : [ { "Age" : 29, "CountryName" : "US" }, { "CompanyName" : "Amazon", "Salary" : 150000, "ProjectName" : [ "Online Library Management System", "Pig Dice Game" ] } ] } { "_id" : ObjectId("5cea466eef71edecf6a1f691"), "CustomerName" : "Chris", "CustomerOtherDetails" : [ { "Age" : 27, "CountryName" : "AUS" }, { "CompanyName" : "Google", "Salary" : 250000, "ProjectName" : [ "Chat Application", "Game Design" ] } ] }
现在,让我们使用点表示法查询嵌套字符串数组:
> db.nestedStringDemo.find({"CustomerOtherDetails.ProjectName":"Chat Application"}).pretty();
这将产生以下输出-
{ "_id" : ObjectId("5cea466eef71edecf6a1f691"), "CustomerName" : "Chris", "CustomerOtherDetails" : [ { "Age" : 27, "CountryName" : "AUS" }, { "CompanyName" : "Google", "Salary" : 250000, "ProjectName" : [ "Chat Application", "Game Design" ] } ] }