MongoDB 查询的结果求反(执行与 $and 操作相反的操作)?


要将结果求反,即执行与 $and 操作相反的操作,请将 $OR 与 $ne 结合使用。我们先使用文档创建一个集合 −

> db.demo4.insert({uid:1,"Name":"Chris","Age":22});
WriteResult({ "nInserted" : 1 })
> db.demo4.insert({uid:2,"Name":"David","Age":21});
WriteResult({ "nInserted" : 1 })
> db.demo4.insert({uid:3,"Name":"Bob","Age":23});
WriteResult({ "nInserted" : 1 })
> db.demo4.insert({uid:1,"Name":"Carol","Age":20});
WriteResult({ "nInserted" : 1 })

以下查询可通过 find() 方法显示集合中的所有文档 −

> db.demo4.find();

这将生成以下输出 −

{ "_id" : ObjectId("5e0a1da125ddae1f53b62221"), "uid" : 1, "Name" : "Chris", "Age" : 22 }
{ "_id" : ObjectId("5e0a1db025ddae1f53b62222"), "uid" : 2, "Name" : "David", "Age" : 21 }
{ "_id" : ObjectId("5e0a1dc225ddae1f53b62223"), "uid" : 3, "Name" : "Bob", "Age" : 23 }
{ "_id" : ObjectId("5e0a1dd225ddae1f53b62224"), "uid" : 1, "Name" : "Carol", "Age" : 20 }

以下是获取求反结果的查询 −

> db.demo4.find({uid:2,$or: [{"Name": {$ne: "Carol"}}, {"Age": {$ne: 21}}]});

这将生成以下输出 −

{ "_id" : ObjectId("5e0a1db025ddae1f53b62222"), "uid" : 2, "Name" : "David", "Age" : 21 }

更新于: 31-3-2020

210 次浏览

启动你的 职业

完成课程以获得认证

上手操作
广告