mongodb 无法查出数据_MongoDB新增及查询数据(一)

新增操作

insert函数会添加一个文档到集合里面。例如我们要登记一个人的信息,首先我们在shell力创建一个局部变量person,其记录了人的姓名和性别,我们通过db.persons.insert(person)想集合persons中插入一条记录,通过db.persons.findOne()查询刚才插入的记录。

2e7f11b35c79701d0ce46e081793e806.png

图 7.新增操作

插入的时候需要注意一下几点:

1. 由于MongoDB是无模式的,所以不要预先定义和创建一个集合,在第一次插入的时候会自动创建。

2. 文档中可以存储任何结构的数据,当然在实际应用中我们存储的是相同类型的文档。

3. 每次插入数据的时候,如果没有”_id”字段,MongoDB会自动为文档生成此字段和值。

a44996bec2564b6477445df71baa979d.png

图 8.一个集合可以承载不同的文档

查询操作

mongoDB使用find进行查询,find的第一个参数决定了查询要返回那些文档,其形式也是一个文档,说明要执行的查询细节。空的查询文档{}会匹配集合的全部内容。find()会返回集合里的所有文档。如果需要查询获取第一条数据可以使用findOne();

c4b4f93e5eb4353dd1cc311f0e168359.png

图 9.使用find和findOne查询集合

使用find()返回一个游标对象,但是shell会自动遍历游标返回一个初始化的set,并允许我们继续使用一个迭代输出。不过我们也可以直接使用游标来输出。

18e6fbab4b9bd8d17efa32bb90bd7e5b.png

图 10.使用it遍历查询结果

通过游标和while也可以遍历查询结果。

4a672017bf75da4ae5f398441ae21772.png

图 11.使用游标查看查询结果

有时我们并不需要查询集合的所有键值对,这时我们可以使用findOne或者find的第二个参数指定想要返回的键。这样既可以节省传输的流量,又能节省客户端解码文档的时间和内存消耗;

1318be2d6ac66405806a187303e792c2.png

图 12.查询结果返回指定字段

查询条件中的值必须是常量,不能引用文档中其他键的值。

dff99a6daffff18b842d9f2e81a3d263.png

图 13.查询条件中不能引用其他字段作为值

mongoDB提供了比较操作符,$lt(),$gte(>=),$ne(!=)

573a7b3abc5184179d805985f3ea82af.png

图 14.查询中的比较操作符

mongoDB中有两种方式可以进行or查询,$in可以用来查询一个键等于多个值的记录,与其对应的是$nin。

4fcfaf6559d59973d5bd76b2985cb339.png

图 15.查询中的or和in

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值