Sql 为什么在我使用find()时,mongoDB数据库中的项明显重复?
我正在浏览他们网站上的try.mongodb.org教程(网页上的嵌入式终端模拟器)。我在t4和t5项上(您可以为教程中的项目键入tx) 在t4中,我们填充一个数据库 在t5中,我们搜索该数据库中的项目: db.scores.find({a:2}) a==2搜索有效,但>15搜索无效。首先,根据t4项,不应存在大于15的条目。Sql 为什么在我使用find()时,mongoDB数据库中的项明显重复?,sql,mongodb,database,Sql,Mongodb,Database,我正在浏览他们网站上的try.mongodb.org教程(网页上的嵌入式终端模拟器)。我在t4和t5项上(您可以为教程中的项目键入tx) 在t4中,我们填充一个数据库 在t5中,我们搜索该数据库中的项目: db.scores.find({a:2}) a==2搜索有效,但>15搜索无效。首先,根据t4项,不应存在大于15的条目。 所以我尝试大于6:db.scores.find({a:{'$gt':6}) 我得到了以下输出,这让我非常惊讶,因为a==7、a==8和a==9应该只有3个条目 >
所以我尝试大于6:
db.scores.find({a:{'$gt':6})代码>
我得到了以下输出,这让我非常惊讶,因为a==7、a==8和a==9应该只有3个条目
>
[
{ "exam" : 14, "a" : 9, "_id" : { "$oid" : "52b1d16bcc937439340649c4" } },
{ "exam" : 12, "a" : 7, "_id" : { "$oid" : "52b1d191cc937439340649cc" } },
{ "exam" : 13, "a" : 8, "_id" : { "$oid" : "52b1d191cc937439340649cd" } },
{ "exam" : 14, "a" : 9, "_id" : { "$oid" : "52b1d191cc937439340649ce" } },
{ "exam" : 12, "a" : 7, "_id" : { "$oid" : "52b1d1a8cc937439340649d6" } },
{ "exam" : 13, "a" : 8, "_id" : { "$oid" : "52b1d1a8cc937439340649d7" } },
{ "exam" : 14, "a" : 9, "_id" : { "$oid" : "52b1d1a8cc937439340649d8" } },
{ "exam" : 5, "a" : 7, "_id" : { "$oid" : "52b1d49fcc937439340649f1" } },
{ "exam" : 5, "a" : 9, "_id" : { "$oid" : "52b1d49fcc937439340649f3" } },
{ "exam" : 5, "a" : 8, "_id" : { "$oid" : "52b1d49fcc937439340649f4" } }
]
如果您查看右侧最初输出的db.scores.find()id,则最后一个字符将随每个条目一起递增——4、5、6、7、8、9、a、b、c、d。但在重复的条目中,请查看a==9的条目。我们有一个以4结尾,一个以e结尾,还有一个以3结尾。在操作的大脑中,数据库似乎有30个条目,而不是10个
{“考试”:14,“a”:9,“id”:{“$oid”:“52B1D16BC937439340649C4”},
{“考试”:14,“a”:9,“id”:{“$oid”:“52b1d191cc937439340649ce”},
{“考试”:5,“a”:9,“id”:{“$oid”:“52B1D49FCC93743934064F3”}
我注意到,如果我尝试使用t4中的循环重新填充数据库,它似乎不会重新写入值。i、 e.如果我对(i=0;i使用,您确定没有多次运行命令吗?如果您运行db.scores.find().count(),您会看到什么,这将告诉您表中有多少项。您缺少一些非常特别的内容
我注意到,如果我尝试使用循环重新填充数据库
在t4中,它似乎不会重新写入值。即,如果我使用(i=0;
如果你看右边的id,它们是4,5,6,7,8,9,a,b,c,d。但是在重复的条目中,取a==9的条目。我们有一个以4结尾,一个以e结尾,一个以3结尾。在操作的大脑中,数据库似乎有30个条目,而不是10个。>JS错误:TypeError:object[object]的属性“count”不是一个函数我确实多次运行命令来填充数据库,但是当我使用db.scores.find()时,我只会得到其中10个的列表。但是每次我尝试重新填充数据库时,当我运行大于搜索时,我确实会得到10个条目。基本上,使用db.scores.find()我会得到10个条目,但是使用db.scores.find(大于…)我运行循环的次数为10*n。因此,在幕后,db.scores.find()没有显示一些条目。我可能错误地使用了count命令,但如果您阅读上面db.scores.find()命令的说明,它会说明控制台一次只显示10,您需要键入“it”来显示下一个10。
for(i=0; i<10; i++) { db.scores.save({a: i, exam: 5+i}) };
>
[
{ "exam" : 14, "a" : 9, "_id" : { "$oid" : "52b1d16bcc937439340649c4" } },
{ "exam" : 5, "a" : 0, "_id" : { "$oid" : "52b1d191cc937439340649c5" } },
{ "exam" : 6, "a" : 1, "_id" : { "$oid" : "52b1d191cc937439340649c6" } },
{ "exam" : 7, "a" : 2, "_id" : { "$oid" : "52b1d191cc937439340649c7" } },
{ "exam" : 8, "a" : 3, "_id" : { "$oid" : "52b1d191cc937439340649c8" } },
{ "exam" : 10, "a" : 5, "_id" : { "$oid" : "52b1d191cc937439340649c9" } },
{ "exam" : 9, "a" : 4, "_id" : { "$oid" : "52b1d191cc937439340649ca" } },
{ "exam" : 11, "a" : 6, "_id" : { "$oid" : "52b1d191cc937439340649cb" } },
{ "exam" : 12, "a" : 7, "_id" : { "$oid" : "52b1d191cc937439340649cc" } },
{ "exam" : 13, "a" : 8, "_id" : { "$oid" : "52b1d191cc937439340649cd" } }
]
>
5. Basic Queries You've already tried a few queries, but let's make them more specific. How about finding all documents where a == 2:
Or what about documents where a > 15? db.scores.find({a: {'$gt': 15}});
>
[
{ "exam" : 14, "a" : 9, "_id" : { "$oid" : "52b1d16bcc937439340649c4" } },
{ "exam" : 12, "a" : 7, "_id" : { "$oid" : "52b1d191cc937439340649cc" } },
{ "exam" : 13, "a" : 8, "_id" : { "$oid" : "52b1d191cc937439340649cd" } },
{ "exam" : 14, "a" : 9, "_id" : { "$oid" : "52b1d191cc937439340649ce" } },
{ "exam" : 12, "a" : 7, "_id" : { "$oid" : "52b1d1a8cc937439340649d6" } },
{ "exam" : 13, "a" : 8, "_id" : { "$oid" : "52b1d1a8cc937439340649d7" } },
{ "exam" : 14, "a" : 9, "_id" : { "$oid" : "52b1d1a8cc937439340649d8" } },
{ "exam" : 5, "a" : 7, "_id" : { "$oid" : "52b1d49fcc937439340649f1" } },
{ "exam" : 5, "a" : 9, "_id" : { "$oid" : "52b1d49fcc937439340649f3" } },
{ "exam" : 5, "a" : 8, "_id" : { "$oid" : "52b1d49fcc937439340649f4" } }
]