要搜索值,只需在MongoDB中使用$where。让我们创建一个包含文档的集合-
> db.demo268.insertOne( ... { ... "details" : { ... "101" : "John", ... "1001" : "Bob" ... } ... } ...); { "acknowledged" : true, "insertedId" : ObjectId("5e4816141627c0c63e7dbaaf") }
在find()
方法的帮助下显示集合中的所有文档-
> db.demo268.find();
这将产生以下输出-
{ "_id" : ObjectId("5e4816141627c0c63e7dbaaf"), "details" : { "101" : "John", "1001" : "Bob" } }
以下是使用数字键在对象中搜索值的查询-
> db.demo268.find({ $where: ... function() { ... for (var k in this.details) { ... if (this.details[k] == "Bob") { ... return true; ... } ... } ... } ...})
这将产生以下输出-
{ "_id" : ObjectId("5e4816141627c0c63e7dbaaf"), "details" : { "101" : "John", "1001" : "Bob" } }