MongoDB内嵌文档查询

内嵌文档查询包括两种情况
  • 查询整个内嵌文档,当内嵌文档键值对的数量以及键值对的顺序都相同时,才会匹配
  • 查询文档的某个字段,需要使用.号操作符

实例
 
   
var db = connect("localhost:27017/test");
db.col.drop();
var bulk = db.col.initializeUnorderedBulkOp();
 
//测试数据
var doc1=
{
"name":"xiaoli",
"age":20,
"address":
{
"province":"GuangDong",
"city":"ShenZhen"
}
}
bulk.insert(doc1);
 
var doc2=
{
"name":"xiaoqiang",
"age":22,
"address":
{
"city":"ShenZhen",
"province":"GuangDong"
}
}
 
bulk.insert(doc2);
 
//下面执行插入操作
bulk.execute()
 
print("========find--内嵌文档查询(查询整个子文档) ========")
var cursor = db.col.find(
{
"address":
{
"province":"GuDong"
}
});
printjson( cursor.toArray() );
var cursor = db.col.find(
{
"address":
{
"province":"GuangDong",
"city":"ShenZhen"
}
});
printjson( cursor.toArray() );
 
print("========find--内嵌文档查询 (查询字段) ========")
var cursor = db.col.find(
{
"address.city":"ShenZhen"
})
printjson(cursor.toArray());

运行结果:
 
   
C:\>mongo --quiet find_embedded.js
========find--内嵌文档查询(查询整个子文档) ========
[ ]
[
{
"_id" : ObjectId("56e6a70060f9d7972921a204"),
"name" : "xiaoli",
"age" : 20,
"address" : {
"province" : "GuangDong",
"city" : "ShenZhen"
}
}
]
========find--内嵌文档查询 (查询字段) ========
[
{
"_id" : ObjectId("56e6a70060f9d7972921a204"),
"name" : "xiaoli",
"age" : 20,
"address" : {
"province" : "GuangDong",
"city" : "ShenZhen"
}
},
{
"_id" : ObjectId("56e6a70060f9d7972921a205"),
"name" : "xiaoqiang",
"age" : 22,
"address" : {
"city" : "ShenZhen",
"province" : "GuangDong"
}
}
]

猜你喜欢

转载自blog.csdn.net/u022812849/article/details/51314779