MongoDB Shell - access collection with period in name?

后端 未结 4 1357
醉话见心
醉话见心 2020-12-30 20:43

I have found a collection in one of our MongoDB databases with the name my.collection.

Is there a way to access this collection from the MongoDB shell,

相关标签:
4条回答
  • 2020-12-30 20:43

    Your code is correct. If it returns null it means that the collection is empty.

    0 讨论(0)
  • 2020-12-30 20:43

    if collection name is "my.collection"

    db.my.collection.findOne(); // OK
    null

    if collection name is "my.1.collection"

    db.my.1.collection.findOne(); // Not OK
    SyntaxError: missing ; before statement

    Fix:

    db["my.1.collection"].findOne(); // Now is OK
    null

    0 讨论(0)
  • 2020-12-30 20:51

    try this instead:

    db["my.collection"].findOne();
    

    you run into the same issue with hyphens or any other name that does not match on [a-zA-Z_$][0-9a-zA-Z_$]

    This limitation comes from valid named for javascript object properties.

    0 讨论(0)
  • 2020-12-30 21:02

    Another foolproof method is:

    db.getCollection("_SCHEMA").find()
    

    While in the case of a underscore in the name, still cause a error with @Laura answer:

    > db["_SCHEMA"].find()
    2016-07-18T17:44:16.948+0200 E QUERY    [thread1] TypeError: db._SCHEMA is undefined :
    @(shell):1:1
    
    0 讨论(0)
提交回复
热议问题