一、查询主键objectId
db.product.find({"_id",ObjectId("564e845ee4b0281c3f8fcf60")})
二、查询数组或者对象内容
使用$elemMatch匹配内数组内的元素
db.product.find({"parameSet":{"$elemMatch":{"564c408fe4b005ef3b0c1a69":"KFFF"}}})
等价于
db.product.find({"parameSet.564c408fe4b005ef3b0c1a69":"KFFF"})
其他:
帮助信息请访问
http://www.runoob.com/mongodb/mongodb-query.html
http://www.mongoing.com/
mongodb like查询
假如需要查找的字符串为"产品",则可以用db.tables.find({"name":/产品/}),
或者db.tables.find({"name":/^产品/}) ,
或者db.tables.find({"name":/产品.*/}),
或者db.tables.find({"name":/.产品.*/})
下面就分析下这几种查询的对应结果有什么不同:
1)db.product.find({"extra_data.region":/.外套.*/})
共112条记录:包含了【防水外套,防晒外套,防寒保暖外套。。。。】
【注:由结果可以看出所查字符前面必须有字符,相当于:db.product.find({"extra_data.region":/.外套./}),也相当于db.product.find({"extra_data.region":/.外套/})】
-----------------------------------------------------------------------------------------------------------
2)db.product.find({"extra_data.region":/^外套/})
共108条记录:包含了【外套装。。。。】
【注:由结果可以看出,此查询必须以所查字符开始】
-----------------------------------------------------------------------------------------------------------
3)db.product.find({"extra_data.region":/外套.*/})
共220条记录:记录包含了【防水外套。防晒外套,防寒保暖外套,外套装。。。。】
【注:由结果可以看出前面字符可以有也可以没有,相当于:db.product.find({"extra_data.region":/外套/})】
-----------------------------------------------------------------------------------------------------------
最后再分析下记录的结果,由上面三种查询可以看出,前两个查询的结果和正好等于最后一种的查询结果,这与注解完全符合。
---------------------------------------------------------------------------------------------------------------------------------