如何动态建立MongoDB查询?
要动态构建查询,您需要编写一些脚本。首先让我们创建一个包含文档的集合-
> db.dynamicQueryDemo.insertOne({"Name":"John","Subject":["MongoDB","MySQL"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cef5c5def71edecf6a1f69a")
}
> db.dynamicQueryDemo.insertOne({"Name":"John","Subject":["C","C++"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cef5c73ef71edecf6a1f69b")
}
> db.dynamicQueryDemo.insertOne({"Name":"John","Subject":["MongoDB","Java"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cef5c8bef71edecf6a1f69c")
}在find()方法的帮助下显示集合中的所有文档-
> db.dynamicQueryDemo.find().pretty();
这将产生以下输出-
{
"_id" : ObjectId("5cef5c5def71edecf6a1f69a"),
"Name" : "John",
"Subject" : [
"MongoDB",
"MySQL"
]
}
{
"_id" : ObjectId("5cef5c73ef71edecf6a1f69b"),
"Name" : "John",
"Subject" : [
"C",
"C++"
]
}
{
"_id" : ObjectId("5cef5c8bef71edecf6a1f69c"),
"Name" : "John",
"Subject" : [
"MongoDB",
"Java"
]
}以下是动态构建MongoDB查询的查询-
> function findDocument(subject) {
var find = {};
if (subject.length == 0)
find["$nin"] = subject;
else
find["$in"] = subject;
return find;
}
> var sub = ["MySQL","MongoDB"];
> var myDoc = findDocument(sub);
> db.dynamicQueryDemo.aggregate([{
$match: {
"Subject": myDoc,
}
}]);这将产生以下输出-
{ "_id" : ObjectId("5cef5c5def71edecf6a1f69a"), "Name" : "John", "Subject" : [ "MongoDB", "MySQL" ] }
{ "_id" : ObjectId("5cef5c8bef71edecf6a1f69c"), "Name" : "John", "Subject" : [ "MongoDB", "Java" ] }热门推荐
1 建队节祝福语简短
10 新婚宴祝福语简短大全
11 家庭生日祝福语大全简短
12 送病人简短的祝福语
13 祝福语闺蜜简短单纯
14 上班祝福语简短10字
15 送教授贺卡祝福语简短
16 过年红包祝福语简短霸气
17 毕业祝福语老婆生日简短
18 访贫问苦祝福语简短句子