当前位置: 首页 > 知识库问答 >
问题:

当使用PL时,MongoDB正确插入和查找,但mongo shell上没有显示记录

权弘新
2023-03-14

我正在编写虚拟服务器来插入到mongodb,连接字符串已经匹配mongo命令行连接字符串,数据库和集合名称也是如此。使用编程语言(PL)驱动程序插入很好,使用mongoshell插入也很好。但是这两条记录似乎并没有互相显示(在使用PL查询时,只能看到使用PL插入的记录,在使用mongoshell查询时,只能找到使用mongo命令行插入的记录)。这可能的原因是什么?

在mongo shell上(只有我刚才插入的1条记录)

rs0:PRIMARY> db.stats()
{
        "db" : "test",
        "collections" : 1,
        "views" : 0,
        "objects" : 1,
        "avgObjSize" : 36,
        "dataSize" : 36,
        "storageSize" : 24576,
        "indexes" : 1,
        "indexSize" : 24576,
        "totalSize" : 49152,
        "scaleFactor" : 1,
        "fsUsedSize" : 138781839360,
        "fsTotalSize" : 233197473792,
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1598360409, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        },
        "operationTime" : Timestamp(1598360409, 1)
}
rs0:PRIMARY> db.test1.points.find()
{ "_id" : ObjectId("5f4506c18fda02c740f2650d"), "test" : 1 }

这可能是什么原因造成的?是否因为我将systemd命令行参数execstart=/usr/bin/mongod--config/etc/mongod--config/etc/mongod--修改为execstart=/usr/bin/mongod--replset rs0

但这在服务器上,这应该全局影响双方的客户端对吗?


共有1个答案

窦彦君
2023-03-14

没关系,只要知道这不是访问数据库的正确方式

db.dbName.colName
db.test1.points.find()

这是正确的方式,我不知道从什么时候开始改变了,或者从一开始就已经这样了…

db = db.getSiblingDB('dbName')
db = db.getSiblingDB('test1')
db.points.find()
 类似资料:
  • 本文向大家介绍使用PHP CodeIgniter记录插入和显示,包括了使用PHP CodeIgniter记录插入和显示的使用技巧和注意事项,需要的朋友参考一下 让我们以员工管理为例, 步骤1:首先,您必须在数据库中以“ EmployeeManager”的形式创建新模式。在此架构中,创建表名称Employee并在其中添加以下字段。 您在这里准备好餐桌了。 第2步:现在您已经准备好数据库,是时候制作C

  • 问题内容: 我想知道使用Node.js将大量插入Mongodb(尽管可能是任何其他数据库)的正确方法是什么 我以下面的代码为例,尽管我相信它是底层的,因为db.close()可以在所有异步collection.insert调用完成之前运行。 问题答案: 如果您的MongoDB服务器是2.6或更高版本,最好利用写命令 Bulk API 来执行大容量插入操作,这些操作只是服务器顶部的抽象,以便于构建大

  • 问题内容: 我需要一些帮助,以便在mongodb和nodejs中按日期查找记录。 我将日期添加到抓取脚本中的json对象中,如下所示: 该对象被插入到mongodb中。我可以看到如下: 然后在我的nodejs脚本中执行findOne(): 找不到对象。如果我从对象中删除last_updated字段,则会找到它,因此绝对是问题所在。 如果我按以下方式隔离字段: 什么也没有回来。请问我做错了什么? 问

  • 问题内容: 我已经开发了一个小应用程序来跟踪我的日常工作活动,该工具包含两个类: 执行者 UIProgress 我的目标是创建一个ProgressBar来更新执行状态,使用的逻辑如下所示, 根据Executor类中定义的executeTask(),我创建了UIProgress对象。 UIProgress类扩展了JFrame。创建一个面板,其中包含带有一个图像的标签和进度条。我已经在此类中定义了一个

  • 我开发了一个小应用程序来跟踪我的日常工作活动,该工具包含两个类: 遗嘱执行人 我的目标是创建一个更新执行状态的ProgressBar,下面给出了使用的逻辑, 从Exector类中定义的执行任务()中,我创建了UIProgress对象。 UIProgress类扩展了JFrame。创建一个包含带有一个图像和进度条的标签的面板。我在这个类中定义了一个方法updateProgress,它设置了进度条的值。

  • 问题内容: 我用来导入CSV文件。CSV文件中的一列包含一些包含分数的值(例如)。 我不需要对分数进行任何数学运算,因为这些值仅用于显示目的,因此我将列设置为。是可行的,但是当我查看SQL中的记录时,分数已用美分()代替,因此显示的文本是。 我有兴趣了解为什么会发生这种情况,以及对如何解决此问题的任何想法。该命令是: 问题答案: 您需要使用,它将字符串数据从Windows代码页1252转换为SQL