我已将 MongoDB 数据库配置为单节点副本集。我可以通过 api 访问它(向它写入数据),也可以从 shell 访问它:
rs0:PRIMARY> rs.status()
{
    "set" : "rs0",
    "date" : ISODate("2017-12-18T14:37:13.487Z"),
    "myState" : 1,
    "term" : NumberLong(1),
    "heartbeatIntervalMillis" : NumberLong(2000),
    "optimes" : {
            "lastCommittedOpTime" : {
                    "ts" : Timestamp(1513607826, 1),
                    "t" : NumberLong(1)
            },
            "readConcernMajorityOpTime" : {
                    "ts" : Timestamp(1513607826, 1),
                    "t" : NumberLong(1)
            },
            "appliedOpTime" : {
                    "ts" : Timestamp(1513607826, 1),
                    "t" : NumberLong(1)
            },
            "durableOpTime" : {
                    "ts" : Timestamp(1513607826, 1),
                    "t" : NumberLong(1)
            }
    },
    "members" : [
            {
                    "_id" : 0, …我希望在MongoDB Compass中查看一个非常大的集合中的最后N个文档。太多无法滚动。
如果我知道Compass中的语法,则可以.skip(total-N)。
另外,我有一个日期字段,如果我知道如何以Compass可接受的方式表示日期,则可以在日期中使用$ gte 。
建议/示例如何执行此操作?
这是我的终端上显示的错误。
{
message: 'connect ECONNREFUSED 127.0.0.1:27017',
  name: 'MongooseServerSelectionError',
  reason: TopologyDescription {
    type: 'Single',
    setName: null,
    maxSetVersion: null,
    maxElectionId: null,
    servers: Map { 'localhost:27017' => [ServerDescription] },
    stale: false,
    compatible: true,
    compatibilityError: null,
    logicalSessionTimeoutMinutes: null,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    commonWireVersion: null
  },
  [Symbol(mongoErrorContextSymbol)]: {}
}
我的连接数据库的代码如下:-
const mongoose = require("mongoose");
mongoose
  .connect("mongodb://localhost:27017/playground", {
    useNewUrlParser: true,
    useUnifiedTopology: true
  })
  .then(() => {
    console.log("database connected");
  })
  .catch(err => {
    console.log("Could not connect", err);
  });
一切都工作正常,直到我关闭笔记本电脑。我不知道为什么 Mongodb 指南针向我显示此错误“服务器选择在 30000 毫秒后超时”,我仅在本地主机上工作
在 Mongodb 指南针中。我想在ownerName和ownerStreet属性中搜索单词“LLC”的集合(我没有文本索引。)我从以下开始:
{ownerName: {$regex: / LLC/i}}
给出 3043 个结果。
然而使用:
{ownerName: {$regex: RegExp(' LLC')},ownerStreet: {$regex: RegExp(' LLC')}}
只给出 100
意思是这是一个“and”语句而不是一个“or”
如何在指南针中使用“或”语句过滤器?
我正在使用 Ubuntu 18.04、mongodb 4.0.3 社区和 mongodb-compass 1.15.4 - 试图让两个 mongodb-compass 实例并排运行。当我双击我的启动器图标时,它会打开 mongodb-compass 的第一个实例。当我第二次双击我的启动器时,它会将焦点设置在 mongodb-compass 的当前运行实例上,但不会打开第二个实例。
我尝试使用命令行调用,并且再次将焦点设置为当前正在运行的实例。
如何启动另一个 mongodb-compass 实例与第一个实例并行运行?
我在 MongoDB 中有一些集合,例如下面的一个
[
  { "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-01-01T08:00:00Z") },
  { "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : ISODate("2014-02-03T09:00:00Z") },
  { "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 5, "date" : ISODate("2014-02-03T09:05:00Z") },
  { "_id" : 4, "item" : "abc", "price" : 10, "quantity" : 10, "date" : ISODate("2014-02-15T08:00:00Z") },
  { "_id" : 5, "item" : "xyz", "price" …我有以下docker compose文件,用于启动mongo按预期工作的docker 容器。
但是,我似乎无法从compass本地计算机连接到容器。
我docker inspect在我的 mongo 容器上执行并得到它IP并尝试使用指南针连接,但它没有用 - 连接超时。
它是我的 docker 网络的 IP 还是我需要的 mongo 容器的 IP?
码头工人撰写文件:
version: "3"
services:
  pokerStats:
    image: pokerStats
    container_name: pokerStats
    ports:
      - 8080:8080
    depends_on: 
      - db
  db:
    image: mongo
    container_name: mongo
    volumes:
      - ./database:/data
    ports:
      - "27017:27017"