即使存在,Mongo也不返回文件

Posted

技术标签:

【中文标题】即使存在,Mongo也不返回文件【英文标题】:Mongo not returning document even though it exists 【发布时间】:2019-08-08 03:25:55 【问题描述】:

所以我进入了 mongo shell ./mongo 并执行了以下命令:

>>>use mydb
>>>show collections
myc
myotherc
users

>>>db.myc.find()
 "_id" : ObjectId("5c8dd1c7b350e73a6bc7cf50"), "name" : "mfirst", "theowner" : ObjectId("5c8d7146bc279c28a6ded7b2"), "mowner" : ObjectId("5c8dcb3a7f1b20386577d4bc"), "created" : ISODate("2019-03-17T04:49:11.194Z"), "__v" : 0 
 "_id" : ObjectId("5c8dd4dfb547843bdee5b9bd"), "name" : "mlast", "theowner" : ObjectId("5c8d7146bc279c28a6ded7b2"), "mowner" : ObjectId("5c8dcb3a7f1b20386577d4bc"), "created" : ISODate("2019-03-17T05:02:23.723Z"), "__v" : 0 

>>>db.myotherc.find()
 "_id" : ObjectId("5c8dcb3a7f1b20386577d4bc"), "people" : [ ObjectId("5c8d7146bc279c28a6ded7b2") ], "name" : "thename", "owner" : ObjectId("5c8d7146bc279c28a6ded7b2"), "created" : ISODate("2019-03-17T04:21:14.388Z"), "__v" : 0 

>>>db.myc.find("mowner._id":"5c8dcb3a7f1b20386577d4bc")

>>>db.myc.find("mowner.name":"thename")

最后两个查询都没有返回任何内容,即使我认为我的语法正确并且它确实存在。知道为什么吗?

【问题讨论】:

如果您使用的是猫鼬,正如标签所说,您希望使用对象 ID ***.com/questions/38051977/… 填充字段 您的查询应该是db.myc.find("mowner": Objectid("5c8dcb3a7f1b20386577d4bc")) @AnthonyWinzlet 对我不起作用。 (仍然什么都不返回) 我拼错了 ObjectId。再试一次。它应该工作 @HarisBouchlis 我觉得它仍然应该返回一些东西。 populate 只是填充一个字段。我的查询仍应返回对象myc(没有填充mowner)。正确的?我尝试了填充但仍然没有返回任何内容。 【参考方案1】:

db.myc.find()

"_id" : ObjectId("5c8dd1c7b350e73a6bc7cf50"), "name" : "mfirst", “所有者”:ObjectId(“5c8d7146bc279c28a6ded7b2”),“mowner”: ObjectId(“5c8dcb3a7f1b20386577d4bc”),“创建”: ISODate("2019-03-17T04:49:11.194Z"), "__v" : 0

"_id" : ObjectId("5c8dd4dfb547843bdee5b9bd"), "name" : "mlast", "theowner" : ObjectId(“5c8d7146bc279c28a6ded7b2”),“割草机”: ObjectId(“5c8dcb3a7f1b20386577d4bc”),“创建”: ISODate("2019-03-17T05:02:23.723Z"), "__v" : 0

myc collectionmownername 中,它们都是集合的平面字段。因此,您需要将查询更改为:-

db.myc.find("name":"thename")
db.myc.find("mowner": ObjectId("5c8dcb3a7f1b20386577d4bc"))

【讨论】:

【参考方案2】:

试试:

db.myc.find("name":"thename")
db.myc.find("mowner": ObjectId("5c8dcb3a7f1b20386577d4bc"))

【讨论】:

以上是关于即使存在,Mongo也不返回文件的主要内容,如果未能解决你的问题,请参考以下文章

即使文件存在,readFileSync也不返回任何数据

即使键存在,Python dict.get(k) 也不返回

Query.getResultList() 即使sql表有行也不返回结果

FileExists() 返回 false,即使文件存在

NGINX - 即使设置了 Access-Control-Allow-Origin 也不存在

即使有数据,JPQL 也不返回任何结果