用同一文档中的字段查询MongoDB?
您可以为此使用$where运算符。为了理解这个概念,让我们用文档创建一个集合。使用文档创建集合的查询如下-
> db.queryInSameDocumentsDemo.insertOne({"StudentDetails":{"StudentName":"John"},"NewStudentDetails":{"StudentName":"Carol"}});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c90096ed3c9d04998abf017")
}
> db.queryInSameDocumentsDemo.insertOne({"StudentDetails":{"StudentName":"Bob"},"NewStudentDetails":{"StudentName":"Bob"}});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c900a435705caea966c5573")
}在find()method的帮助下显示集合中的所有文档。查询如下-
> db.queryInSameDocumentsDemo.find().pretty();
以下是输出-
{
"_id" : ObjectId("5c90096ed3c9d04998abf017"),
"StudentDetails" : {
"StudentName" : "John"
},
"NewStudentDetails" : {
"StudentName" : "Carol"
}
}
{
"_id" : ObjectId("5c900a435705caea966c5573"),
"StudentDetails" : {
"StudentName" : "Bob"
},
"NewStudentDetails" : {
"StudentName" : "Bob"
}
}情况1-这是在同一文档中具有字段的查询。我们在这里使用了等于(==)运算符。查询如下-
> db.queryInSameDocumentsDemo.find( { $where: "this.StudentDetails.StudentName == this.NewStudentDetails.StudentName" } ).pretty();以下是输出-
{
"_id" : ObjectId("5c900a435705caea966c5573"),
"StudentDetails" : {
"StudentName" : "Bob"
},
"NewStudentDetails" : {
"StudentName" : "Bob"
}
}情况2-这是在同一文档中具有字段的查询。我们使用不等于运算符。
查询如下-
> db.queryInSameDocumentsDemo.find( { $where: "this.StudentDetails.StudentName != this.NewStudentDetails.StudentName" } ).pretty();以下是输出-
{
"_id" : ObjectId("5c90096ed3c9d04998abf017"),
"StudentDetails" : {
"StudentName" : "John"
},
"NewStudentDetails" : {
"StudentName" : "Carol"
}
}热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短