如何在mongo shell中查看文档字段?

Rob*_*Rob 20 mongodb

有没有办法在mongo的shell中找出文档中的字段/键?举个例子,假设我们有一个类似(伪代码)的文档:

{
    "message": "Hello, world",
    "from": "hal",
    "field": 123
}
Run Code Online (Sandbox Code Playgroud)

我想在shell中运行一个命令,返回该文档中的字段/键列表.例如,像这样:

> var message = db.messages.findOne()
> message.keys()
... prints out "message, from, field"
Run Code Online (Sandbox Code Playgroud)

谢谢!

Wil*_*ald 60

更简单:

Object.keys(db.messages.findOne())

  • 希望谷歌索引评论...我发现这一点在Mongo中寻找像SQL的"DESCRIBE". (3认同)

Sha*_*ade 10

一个for ... in循环应该做的伎俩:

> var message = db.messages.findOne();
> for (var key in message) {
... print(key);
... }
Run Code Online (Sandbox Code Playgroud)


Man*_*ddy 5

其他答案是正确的。

但是,由于我是一个全新的人,所以我不明白上述命令在何处以及如何执行。

下面从我的github帮助了。
在Windows上:在命令提示符(cmd)中运行此代码。
在Mac或Linux上:在终端窗口中运行此代码。

// ------------
// start mongo client
mongo

// ------------

// list all databases
show dbs
// NOTE: assume one of the databases is myNewDatabase

// use the 'myNewDatabase' database
use myNewDatabase

// ------------

// show all collections of 'myNewDatabase' database
show collections
// NOTE: assume one of the collections is 'myCollection'

// show all documents of 'myCollection' collection
db.myCollection.find()

// ------------

// field keys
Object.keys(db.myCollection.findOne());

// values
db.myCollection.find().forEach(function(doc) {
    for (field in doc) {
        print(doc[field]);
    }
});

// ------------
Run Code Online (Sandbox Code Playgroud)